Java/Java 학습

[JAVA] Java14 개선된 Switch 문

HSY_mumu 2022. 8. 9. 00:12
728x90

1. 기존의 switch 문

switch (day) {
    case MONDAY:
    case FRIDAY:
    case SUNDAY:
        System.out.println(6);
        break;
    case TUESDAY:
        System.out.println(7);
        break;
    case THURSDAY:
    case SATURDAY:
        System.out.println(8);
        break;
    case WEDNESDAY:
        System.out.println(9);
        break;
}

2. 개선된 swtich 문

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);
}

- 다중 case 사용 O (case를 ,로 구분하여 쓸 수 O)

- 화살표 case 라벨(->)을 사용하면 마지막에 break를 사용한 것과 동일

- 화살표 case 라벨(->)을 사용할 때 실행문이 2줄 이상일 때는 중괄호 필수(1줄일 때만 중괄호 생략O)

3. 개선된 swtich 문2

int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY -> 7;
    case THURSDAY, SATURDAY -> 8;
    case WEDNESDAY -> 9;
};

- 화살표 case 라벨(->) 뒤에 있는 값을 return하여 바로 대입O

- 화살표 case 라벨(->) 뒤에 있는 값void type이면 에러가 발생

4. 개선된 swtich 문3

int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY	-> {
        System.out.print("Six ");
        yield 6;
    }
    case TUESDAY -> 7;
    case THURSDAY, SATURDAY -> 8;
    case WEDNESDAY -> 9;
};

- 중괄호 안에서만 yield 예약어 사용O

 

[참고] https://congcoding.tistory.com/73

 

[Java 14] 개선된 switch 문(Enhanced Switch Expressions)

1. 개선된 switch 문이란? 2020년 3월에 출시된 Java 14부터 개선된 switch 문을 지원합니다. 기존 switch문은 깔끔하지 못하고 가독성도 떨어지며, break문의 누락으로 인한 오류 가능성도 크기 때문에 화

congcoding.tistory.com

 

728x90