39. Java 控制流语句 Yield语句
🚀 yield 语句介绍
在 Java 12 中,我们迎来了一个非常实用的语法糖——yield 语句!它使得我们在使用 switch 表达式时能够轻松返回值,尤其在 switch 的 case 块中涉及复杂计算时非常有用。🎯
yield 语句的基本用法
你可以把 yield 想象成一种“终结”语句,它帮助你从 switch 表达式中返回一个值。简单来说,yield 就是你告诉程序:“这个 case 完成了,这就是我要返回的结果”。
switch (expression) {
case value1 -> value1Result;
case value2 -> value2Result;
default -> {
// 可以做更复杂的操作
yield finalResult; // 这里就是返回值的地方
}
}
📊 示例:计算剩余工作天数
让我们通过一个实际的例子来看看 yield 是怎么帮助我们更清晰地处理 switch 语句的。
假设我们要计算从当前周几到周五还剩多少个工作日,周六和周日当然是不用工作的啦!😎
class Test {
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public int calculate(Day d) {
return switch (d) {
case SATURDAY, SUNDAY -> 0; // 如果是周末,剩余工作天数为0
default -> {
int remainingWorkDays = 5 - d.ordinal(); // 计算剩余工作天数
yield remainingWorkDays; // 返回剩余工作天数
}
};
}
}
💻 程序输出
Test t = new Test();
System.out.println(t.calculate(Day.MONDAY)); // 输出 4
System.out.println(t.calculate(Day.SUNDAY)); // 输出 0
解释:
MONDAY:从周一到周五还有 4 个工作日,所以输出 4。SUNDAY:周日是休息日,所以输出 0。
🔑 主要要点:
yield是用于switch表达式中的,帮助返回一个值。switch表达式 使得switch不仅仅是一个控制流工具,它现在还能返回一个值。- 在
switch的case或default块中,使用yield可以执行更复杂的计算并返回最终结果。
总结:
yield是 Java 12 新特性,它让你在switch表达式中轻松返回一个值,特别适用于处理复杂的计算。- 与传统的
switch语句相比,yield提供了更简洁、更直观的控制流程,特别是在涉及多个分支逻辑时,它让代码更具可读性和可维护性。
使用 yield,你的 switch 语句将变得更强大、灵活,就像给你的代码加了一对翅膀!🦸♂️