Phase 5 of 20 · Topic 5.1

Modern Switch Expressions (Java 14+ Arrow Syntax)

1Concept

Java 14 standardized Switch Expressions using the arrow `->` syntax. Switch expressions eliminate fall-through bug risks, allow multiple comma-separated case labels, can return values directly, and use the `yield` statement for multi-line logic blocks.

2Architecture Diagram

Input: DayOfWeek.FRIDAY
       |
       v
switch (day) {
  case MONDAY, TUESDAY -> "Work";
  case FRIDAY          -> "Weekend Ready";  ---> Evaluates to "Weekend Ready"
  case SATURDAY, SUNDAY-> "Rest";
}

3Code Example

Core Java
public class ModernSwitchDemo {
    public static void main(String[] args) {
        String day = "WEDNESDAY";

        String schedule = switch (day) {
            case "MONDAY", "TUESDAY" -> "Team Standups & Planning";
            case "WEDNESDAY", "THURSDAY" -> "Deep Development Sprint";
            case "FRIDAY" -> {
                System.out.println("Running automated deployment checks...");
                yield "Production Release & Verification";
            }
            default -> "Weekend On-Call Standby";
        };

        System.out.println("Day: " + day);
        System.out.println("Schedule: " + schedule);
    }
}

4Expected Output

Day: WEDNESDAY
Schedule: Deep Development Sprint

5Key Takeaways

  • Arrow `->` cases do NOT fall through; `break` statements are no longer required.
  • Use `yield` to return a value from a multi-line block inside a switch expression.
  • When switching over enums, the compiler enforces exhaustiveness, eliminating default case requirements.