기존의 switch문에 대한 개발자들의 불만이 많았다 switch문을 사용하는 이유에 가장 큰 이유는 가독성이지만, switch문은 가독성이 그닥 좋지 않은 데다가 코드줄만 더 잡아먹었다
2020년 Java 14에서 도입된 새로운 switch 문은 더 간결하고 표현력이 뛰어나게 만들기 위해 설계되었다 이 새로운 switch 문은 "switch expression"이라고도 불리며, 실제 현업에서도 종종 사용되니 잘 알아두자
기존의 switch 문과 다른 주요 특징은 다음과 같다
1. 표현식으로 사용 가능
새로운 switch 문은 값으로 평가될 수 있다. 즉, 변수에 결과를 할당할 수가 있다.
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
default -> throw new IllegalStateException("Invalid day: " + day);
};
2. 화살표(->) 문법 사용
화살표 문법을 사용하여 각 case를 더 간단하게 표현할 수 있게 됐다.
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
default -> System.out.println("Invalid day");
}
3. 블록 사용 가능
각 case에 여러 줄의 코드가 필요할 때는 중괄호({})를 사용하여 블록을 만들 수 있다.
int result = switch (operation) {
case "ADD" -> {
int sum = a + b;
yield sum;
}
case "SUBTRACT" -> {
int difference = a - b;
yield difference;
}
default -> throw new IllegalArgumentException("Unknown operation: " + operation);
};
블록 내에서는 yield 키워드를 사용하여 값을 반환한다.
4. 중복된 case 레이블
기존 switch 문에서도 가능한 중복된 case 레이블을 더 쉽게 표현할 수 있다.
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println("6 letters");
case TUESDAY -> System.out.println("7 letters");
case THURSDAY, SATURDAY -> System.out.println("8 letters");
case WEDNESDAY -> System.out.println("9 letters");
default -> System.out.println("Invalid day");
}
※ 새로운 switch 문에서는 모든 가능한 값을 처리하지 않는 경우 default 문을 반드시 포함해야 한다.
'Language > Java' 카테고리의 다른 글
[Java API] java.lang 패키지 주요 클래스와 인터페이스 정리 (0) | 2024.08.20 |
---|---|
JAVA 16 - instanceof 신기능(Pattern Matching for instanceof) (0) | 2024.08.11 |
[Java] 오버라이딩 조건 5가지 (0) | 2024.08.09 |
[Java] 상속과 메모리 구조 (0) | 2024.08.09 |
[Java] 패키지 규칙 및 관례 (0) | 2024.08.06 |