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 타입도 사용할 수 있게 됨.
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] 컴파일 에러와 런타임 에러 (0) | 2023.05.31 |
---|---|
[Java Error] class java.lang.Integer cannot be cast to class java.lang.Long 해결 방법 (0) | 2023.05.23 |
[Java] Stream에서 index 사용하기 (0) | 2023.05.19 |
[Java] LocalDate 해당 월의 마지막 날짜 구하기 (0) | 2023.05.18 |
[Java] Stream sorted 여러개 정렬하기 (0) | 2023.05.10 |