How has switch rules vs statements changed in recent Java versions?

In recent Java versions, particularly starting from Java 12, the switch statement has evolved to include new features that enhance its functionality and readability. The introduction of the 'switch expression' allows the switch to return a value and supports improved case handling, which simplifies complex logic. Additionally, it enables the use of arrows (->) to define cases, providing a more concise syntax.

Prior to these updates, switch statements were limited to specific data types and required break statements to prevent fall-through behavior. The new enhancements allow for more flexibility and streamlined code.

Example of Switch Expression in Java

String day = "MONDAY"; String typeOfDay = switch (day) { case "MONDAY", "FRIDAY", "SUNDAY" -> "Weekday"; case "TUESDAY", "WEDNESDAY", "THURSDAY" -> "Weekday"; case "SATURDAY" -> "Weekend"; default -> throw new IllegalArgumentException("Invalid day: " + day); }; System.out.println(typeOfDay); // Output: Weekday

Java Switch Expression Java 12 Features Code Simplification Programming Enhancements