if-else if -else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 있게 구현
비교 조건이 특정 값이나 문자열인 경우 사용
break문을 사용하여 각 조건이 만족되면 swich 블럭을 빠져나오도록 함
JAVA14부터 좀 더 간결해진 표현식이 지원됨
package ch16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
int day;
switch(month){
case 1:
day = 31;
break;
case 2:
day = 28;
break;
case 3:
day = 31;
break;
case 4:
day = 30;
break;
case 5:
day = 31;
break;
case 6:
day = 30;
break;
case 7:
day = 31;
break;
case 8:
day = 31;
break;
case 9:
day = 30;
break;
case 10:
day = 31;
break;
case 11:
day = 30;
break;
case 12:
day = 31;
break;
default:
System.out.println("존재하지 않는 달 입니다.");
day = -1;
}
System.out.println(month+"월은"+day+"일까지 있습니다.");
}
}
위 코드를 아래와 같이 줄여 사용 할 수 있다.
package ch16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
int day;
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 6: case 9: case 11:
day = 30;
break;
default:
System.out.println("존재하지 않는 달 입니다.");
day = -1;
}
System.out.println(month+"월은"+day+"일까지 있습니다.");
}
}
최종적으로 JAVA14 에서는 아래와 같이 축약 할 수 있다.
package ch16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
int day = switch(month){
case 1,3,5,7,8,10,12 ->{
System.out.println("이번달은 31일까지 입니다.");
yield 31;
}
case 2 ->
28;
case 6,9,11 ->
30;
default->{
System.out.println("존재하지 않는 달 입니다.");
yield -1;
}
};
System.out.println(month+"월은"+day+"일까지 있습니다.");
}
}
반복문 do-while문 (0) | 2022.07.06 |
---|---|
반복문 - while문 (0) | 2022.07.06 |
조건이 여러 개 일 때의 if문 (0) | 2022.07.05 |
조건문 - if문 (0) | 2022.07.05 |
자바의 연산자들 - 3 (0) | 2022.07.05 |