기존 switch문
switch (operator) {
case ADD:
return num1 + num2;
case SUBTRACT:
return num1 - num2;
case MULTIPLY:
return num1 * num2;
case DIVIDE:
return num1 / num2;
default:
throw new IllegalArgumentException("잘못된 연산자입니다.");
}
개선된 switch문
return switch (operator) {
case ADD -> num1 + num2;
case SUBTRACT -> num1 - num2;
case MULTIPLY -> num1 * num2;
case DIVIDE -> num1 / num2;
default -> throw new IllegalArgumentException("잘못된 연산자입니다.");
};
// 블록 사용하는 경우
return switch (operator) {
case ADD -> {
System.out.println("덧셈 연산 수행!");
yield num1 + num2; // ✅ `yield`를 사용해서 값을 반환해야 함!
}
};
Java 12부터 사용 가능
- -> 다음에 바로 반환값을 적을 수 있음
- break 필요 없음
- 더 간결하고 가독성 높음
- 여러 줄을 작성해야 한다면 {} 사용
- 블록 사용 시, 리턴할 때 yield 키워드 필요
변수에 값을 저장하는 switch문 예시
기존 switch문
int numLetters;
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
numLetters = 6;
break;
case TUESDAY:
numLetters = 7;
break;
case THURSDAY:
case SATURDAY:
numLetters = 8;
break;
case WEDNESDAY:
numLetters = 9;
break;
default:
numLetters = -1;
}
개선된 switch문
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
예제 코드 출처 https://openjdk.org/jeps/361
'언어, 프레임워크 > Java' 카테고리의 다른 글
Assert 알아보기 (0) | 2025.03.08 |
---|---|
Collectors 클래스 (0) | 2025.03.07 |
enum 이해하기 (0) | 2025.03.06 |
contains() / equalsIgnoreCase() / Number 클래스 (1) | 2025.03.05 |
제네릭 알아보기 (0) | 2025.03.05 |