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.
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
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?