비교조건이 특정 값이나 문자열일 경우, if - else if 문에서 반복되는 부분을 가독성 좋게 표현한 방법입니다.
java14 부터는 각 case에서 break를 사용하지 않아도 됩니다.
import java.util.Scanner;
public class SwithchCaseTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
int day;
// int day = switch(month)
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
//yield 31 하면 반환값이라는 의미
day = 31;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
case 2:
day = 28;
break;
default:
day = 0;
System.out.println("존재하지 않는 달 입니다.");
}
System.out.println(month + "월은 " + day + "일입니다.");
}
}
2 를 입력했을 경우,
2월은 28일입니다.
Scanner를 통해 값을 input 받을 수 있습니다.
입력받은 값은 month 변수에 저장이 되는데, month 값에 따라 switch-case에서 수행되는 결과가 달라집니다.
month 값이 1,3,5,7,8,10,12 일 경우 day는 31이 저장되고 "~월은 31일 입니다. 라는 결과가 출력됩니다.
switch-case문에서 비교 조건이 같은 값일 때 같은 줄에 기입할 수 있습니다. ( 콜론으로 구분은 필요 )
1~12 이외의 값이 입력될 경우 day에는 default 값인 0이 저장되고, "존재하지 않는 달입니다." 가 출력이 됩니다.