HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
✍🏻
Learnary (learn - diary)
/
Java 14 향상된 스위치 표현식

Java 14 향상된 스위치 표현식

progress
Done
Tags
Java
아래는 Java 14에서 개선된 스위치 표현식의 예시이다.
String fruit = "apple"; int price = switch (fruit) { case "orange" -> 100; case "apple", "pear" -> 200; case "banana" -> { int i = 300; yield i; } default -> 0; };
이제 스위치 표현식에서 변수를 선언하고 사용할 수 있으며, 콜론 대신 화살표를 사용하여 간결한 코드를 작성할 수 있습니다. 또한, 여러 값에 대해 같은 블록을 실행할 수 있다.
 
새로운 버전의 스위치 문은 1)하나의 case 문장에 여러개의 조건을 담을 수 있으며 2) switch 에서 값을 리턴할 수 있고 3)yield 키워드를 사용할 수 있다.
 
  1. 하나의 case 문장에 여러개의 조건을 담을 수 있다.
===== 이전 사용법 ====== 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; } ====== 개선된 버전 ======= 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); }
 
  1. switch 에서 값을 리턴할 수 있다.
int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; };
 
  1. yield 키워드를 사용할 수있다.
witch 문에서는 중괄호 안에서만 yield 예약어를 사용할 수 있다
따라서 case TUESDAY -> yield 7; 이라고 하면 에러난다.
int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY: System.out.print("Six "); yield 6; case TUESDAY: yield 7; case THURSDAY, SATURDAY: yield 8; case WEDNESDAY: yield 9;};
yield 예약어는 case 라벨(:)에도 사용 가능함.
case 라벨(:)은 실행문이 여러 개일 때 중괄호를 사용하지 않아도 된다

REFER

JEP 361: Switch Expressions
JEP 361: Switch Expressions
https://openjdk.java.net/jeps/361