본문 바로가기
개발/Java

Java Switch Case

by Devsong26 2023. 11. 9.

하나의 값을 기준으로 여러 분기를 나눠야 할 때 사용되는 자바 문법입니다.

Java의 switch 문은 기본적으로 정수형 데이터 타입 (byte, short, int, long) 및 문자형 데이터 타입 (char)과 Enum 타입에 대해서만 동작합니다

 

Java의 8, 12, 17 버전에서 Switch Case 문법을 사용하는 방법이 다릅니다.

 

Java 8에서는 switch 문법이 Java의 이전 버전과 크게 다르지 않지만, Java 17에서는 switch 문법에 몇 가지 개선이 있었습니다. 먼저 Java 8에서 기본적인 switch 문법을 보여드리겠습니다.

Java 8에서의 기본 switch 문법:

int day = 3;
String dayName;

switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    case 4:
        dayName = "Thursday";
        break;
    case 5:
        dayName = "Friday";
        break;
    default:
        dayName = "Weekend";
}
System.out.println("Today is " + dayName);



Java 8 이상에서는 switch 문법에 개선 사항이 추가되었습니다. 새로운 switch 표현식을 사용하여 코드를 더 간결하게 작성할 수 있습니다. 예를 들어, Java 12 이상에서는 다음과 같이 작성할 수 있습니다.

int day = 3;
String dayName = switch (day) {
    case 1 -> "Monday";
    case 2 -> "Tuesday";
    case 3 -> "Wednesday";
    case 4 -> "Thursday";
    case 5 -> "Friday";
    default -> "Weekend";
};
System.out.println("Today is " + dayName);

 


Java 17에서는 새로운 switch 패턴과 함께 더 많은 개선 사항이 도입되었습니다. 다음은 Java 17에서의 예제입니다.

int day = 3;
String dayName = switch (day) {
    case 1, 2, 3, 4, 5 -> "Weekday";
    case 6, 7 -> "Weekend";
    default -> "Unknown";
};
System.out.println("Today is " + dayName);



Java 17에서는 여러 값의 패턴을 동시에 처리할 수 있으며, 새로운 "case L ->" 구문을 사용하여 간결한 코드를 작성할 수 있습니다. 이로써 switch 문법이 더 강력하고 가독성이 높아진 것을 확인할 수 있습니다.

'개발 > Java' 카테고리의 다른 글

Java Method  (1) 2023.11.11
SOLID  (1) 2023.10.30
외부 라이브러리의 thread-safety 확인하는 방법  (0) 2022.03.24
자바 애노테이션이란?  (0) 2022.03.24
JAVA BigDecimal을 왜 그리고 어떻게 사용할까?  (0) 2021.06.23