if & else if & else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현break 문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 함자바 14부터 좀 더 간결해진 표현식이 지원 됨 ( break 사용하지 않음 )package ch16; import java.util.Scanner; public class SwitchCaseTest { public static void main(String[] args) { Scanner scanf = new Scanner(System.in); System.out.println("한달이 몇일인지 알려주는 프로그램 입니다."); System.out.print("확인 하고 싶은 달을 입력 하세요:"); int month = scanf.nextInt(); int day; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: 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 + "일 입니다."); } }출력 결과
package ch16; public class SwitchCaseTest2 { public static void main(String[] args) { String medal = "Gold"; switch(medal) { case "Gold": System.out.println("금메달 입니다."); break; case "Silver": System.out.println("은메달 입니다."); break; case "Bronze": System.out.println("동메달 입니다."); break; default: System.out.println("메달이 없습니다."); break; } } }출력 결과
,)로 조건 구분yield 키워드 사용package ch16; import java.util.Scanner; public class SwitchCaseTest { public static void main(String[] args) { Scanner scanf = new Scanner(System.in); System.out.println("입력한 달이 몇일까지 인지 알려주는 프로그램 입니다."); System.out.print("확인 하고 싶은 달을 입력 하세요:"); int month = scanf.nextInt(); int day = switch (month) { case 1, 3, 5, 7, 8, 10,12 -> { System.out.println(month +"월은 31일 까지 입니다."); yield 31; } case 4,6,9,11 -> { System.out.println(month +"월은 30일 까지 입니다."); yield 30; } case 2 ->{ System.out.println(month +"월은 28일 까지 입니다."); yield 28; } default->{ System.out.println(month +"월은 존재하지 않는 달 입니다."); yield 0; } }; } }출력 결과