✅ 1. swtich-case문
1.1 사용법
Switch(변수) {
case 값1:
명령1;
break;
case 값2:
명령2;
break;
default:
명령;
break;
}
if - else if 문 대신 swtich-case문을 쓰면 각 case별 처리를 한 눈에 알아 볼 수 있어서 깔끔하다는 장점이 있다.
1.2 예시
1등은 금메달, 2등은 은메달, 3등은 동메달, 나머지는 참가상을 출력하는 프로그램 만들기

int rank = 2;
switch(rank) {
case 1:
System.out.println("당신은 금메달");
break;
case 2:
System.out.println("당신은 은메달");
break;
case 3:
System.out.println("당신은 동메달");
break;
default:
System.out.println("당신은 참가상");
break;
}
✅ 2. swtich-case문의 병합처리
2-1.병합처리란?
만약 1등은 대상을 받고, 2등과 3등은 최우수상, 4등과 5등은 우수상을 받는 경우 어떻게 코드를 짤 수 있을까? 즉, case2와 case3에서 실행해줄 명령이 같고, case4와 case5에서도 같은 명령을 실행해 주어야 하는 경우 말이다. 이런 경우에 두 개의 케이스를 하나로 합쳐 기술하는 것을 병합처리라고 한다. 굳이 똑같은 명령을 두 번 적어줄 필요가 없기 때문이다. 병합처리는 case의 끝에 break;가 없으면 다음 case 명령까지 계속 실행하는 특성을 활용한 것이다.
2-2. 1등은 대상, 2,3등은 최우수상, 4,5등은 우수상 출력하는 프로그램
int rank = 2;
switch(rank) {
case 1:
System.out.println("대상");
break;
case 2:
case 3:
System.out.println("최우수상");
break;
case 4:
case 5:
System.out.println("우수상");
break;
}
case2와 case3이 같을 때 break를 생략 해 주면 코드가 자연스럽게 아래로 흘러가면서 case3에 있는 명령이 실행된다.
이런 현상은 fall through(폴 스루)라고 하며 두 개의 case를 or로 연결해주는 것과 같은 기능을 한다. case2: case3:은 값이 case2 or case3 이라는 말과 같다.
2-3. 각 월은 몇 일까지 있을까? - 월별 날짜수 구하는 프로그램
int days;
int month = 3;
switch(month) {
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
System.out.println(month + "월은 " + days + "일까지 있습니다.");
3월은 31일까지 있습니다.
'Java' 카테고리의 다른 글
| [Java] this 키워드의 의미와 사용 방법 3가지(예시 코드 포함) (0) | 2024.04.19 |
|---|---|
| 코딩에서의 스코프(Scope)란? (feat. 자바) (1) | 2024.04.19 |
| [자바] 예시를 통해 쉽게 이해하는 이스케이프 시퀀스(Escape sequence)와 텍스트 블록(""") (3) | 2024.03.29 |
| [java] 자바 배열 생성하는 4가지 방법과 배열 출력하기 (2) | 2024.03.21 |
| [Java] 자바 난수 생성, 랜덤한 수 - java.util.Random 클래스 , Math.random() 메서드 (0) | 2024.03.21 |