728x90
반응형

Switch Expression

Java 12 버전에 preview에 소개된 Switch Expression은 Java 14 버전에서 표준화 됨

기존의 Switch문과 비교하여 몇 가지 특징이 있음

 


화살표(->) 연산자 

int day = 1;
String dayOfWeek = switch (day) {
    case 1 -> "Monday";
    case 2 -> "Tuesday";
    case 3 -> "Wednesday";
    case 4 -> "Thursday";
    case 5 -> "Friday";
    default -> "Unknown";
};
System.out.println(dayOfWeek); // 출력: "Monday"

case 문의 실행 코드 뒤에 화살표(->) 연산자를 사용하여 실행할 블록을 지정함. 이를 통해 Fall-through 특성이 없어지고, case 별로 명확하게 동작을 정의할 있음.

 

 

추론 

int number = 5;
String category = switch (number) {
    case 1, 2, 3 -> "Small";
    case 4, 5, 6 -> "Medium";
    case 7, 8, 9 -> "Large";
    default -> "Unknown";
};
System.out.println(category); // 출력: "Medium"

switch 표현식의 타입과 case 레이블의 값의 타입이 일치하는 경우, case 문의 값의 타입을 명시하지 않아도 자동으로 추론됨. 이로써 코드 작성 타입 명시를 생략할 있어 가독성을 향상시킴.

 

 

블록 내부의 문장 결합 

String fruit = "Apple";
switch (fruit) {
    case "Apple" -> {
        System.out.println("Selected fruit: " + fruit);
        System.out.println("It is a type of apple.");
    }
    case "Orange" -> {
        System.out.println("Selected fruit: " + fruit);
        System.out.println("It is a type of orange.");
    }
    default -> System.out.println("Unknown fruit.");
}

블록 내부에 다수의 문장을 작성할 있음. 이를 통해 복잡한 동작을 수행하는 코드를 간결하게 작성할 있음.

 

 

유연한 표현식 

int value = 2;
switch (value) {
    case 1, 3, 5:
        System.out.println("홀수");
        break;
    case 2, 4, 6:
        System.out.println("짝수");
        break;
    default:
        System.out.println("기타");
}

표현식으로 여러 값을 함께 처리할 있음. 콤마(,) 구분하여 여러 값을 지정하면 해당 값을 가지는 case 문이 실행됨.

 

 

사용할 있는 데이터 타입

String value = "two";
int result = switch (value) {
    case "one" -> 1;
    case "two" -> 2;
    case "three" -> 3;
    default -> 0;
};
System.out.println(result);

byte, short, int, char, Enum 타입을 사용할 있음. 또한, Java 15부터는 String 타입도 사용할 있게 됨.

반응형
복사했습니다!