The yield
keyword in Java is used in the context of switch expressions, introduced in Java 12 as a preview feature and made a standard feature in Java 14. The yield
keyword allows returning a value from a case
block within a switch expression.
Table of Contents
- Introduction
yield
in Switch Expressions- Syntax
- Examples
- Real-World Use Case
- Conclusion
Introduction
The yield
keyword is used within a switch expression to return a value from a particular case. This enhances the switch statement by allowing it to be used as an expression that can return a value, making the code more concise and expressive.
yield in Switch Expressions
Syntax
The syntax for using the yield
keyword in a switch expression is as follows:
var result = switch (expression) { case value1 -> value1Result; case value2 -> { // code block yield value2Result; } default -> defaultValue; };
Example
To demonstrate the usage of the yield
keyword in a switch expression, we will calculate a value based on the input using a switch expression.
public class YieldSwitchExample { public static void main(String[] args) { int day = 3; String dayType = switch (day) { case 1, 2, 3, 4, 5 -> "Weekday"; case 6, 7 -> "Weekend"; default -> { System.out.println("Invalid day"); yield "Unknown"; } }; System.out.println("Day type: " + dayType); } }
Output:
Day type: Weekday
Real-World Use Case
Mapping Enums to Descriptions
In real-world applications, the yield
keyword can be used to map enum values to their corresponding descriptions using a switch expression.
Example
public class YieldRealWorldExample { enum TrafficLight { RED, YELLOW, GREEN } public static void main(String[] args) { TrafficLight signal = TrafficLight.RED; String action = switch (signal) { case RED -> "Stop"; case YELLOW -> { System.out.println("Caution"); yield "Slow Down"; } case GREEN -> "Go"; }; System.out.println("Action: " + action); } }
Output:
Action: Stop
Conclusion
The yield
keyword in Java enhances switch expressions by allowing them to return values from individual case blocks. This makes the code more concise and expressive, providing a more flexible and powerful alternative to traditional switch statements. By understanding and using the yield
keyword, you can write more modern and efficient Java code.