- 비교 조건이 특정 값이나 문자열일때 사용
- break문 사용하여 각 조건 만족시 switch 블럭 빠져나오도록 함.
* 예제 코드
- 달을 입력 받아 일 수를 출력하는 프로그램
- case 입력 시 가독성을 위해 들여쓰기 해주기
- 같은 조건일 경우에는 case 연달아 써줄 수 있음
- day 변수 초기화 해주지 않으면 오류 발생
import java.util.*;
public class SwitchTest {
public static void main(String[] args) {
int month;
Scanner scanner = new Scanner(System.in);
month = scanner.nextInt();
int day = 0;
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
case 2:
day = 28;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
default:
System.out.println("존재하지 않는 달입니다.");
}
System.out.println(month + "월은 " + day + "일 입니다.");
}
}
* 실행 결과

* break문을 사용해주지 않으면
- 첫번째 조건 값 입력해도 다음 조건으로 넘어감
- break문 만나 day = 28; 수행
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
//break;
case 2:
day = 28;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
default:
System.out.println("존재하지 않는 달입니다.");
}
* Java 14부터 지원되는 switch-case문
- case를 하나하나 입력해야 하는 번거로움이 줄었다
- break문 사용x
- switch문의 값을 반환 받을 수 있음 (블록 끝에 세미콜론(;) 필요)
- 별도의 수행 부분이 있을 때 값 반환 시 'yield' 키워드 사용
int day = switch(month) {
case 1,3,5,7,8,10,12 ->
31;
case 2->
28;
case 4,6,9,11->
30;
default->{
System.out.println("존재하지 않는 달입니다.");
yield -1;
}
};
'Java & Kotlin' 카테고리의 다른 글
[Java 기초] 반복문 (0) | 2022.01.20 |
---|---|
[Java 기초] 조건 연산자, 비트 연산자 (0) | 2022.01.19 |
[Java 기초] 자료 표현하기 (0) | 2022.01.19 |