上海英文网站制作,济南网站优化推广,河南锦路路桥建设有限公司网站,网站建设协议 模板java switch语句于2020年3月发布的JDK 14带有switch语句的更新版本。 这是JDK 12和JDK 13中的预览功能。 要了解差异#xff0c;让我们看一个简单的示例。 假设我们要基于DayOfWeek枚举来计算每日工作时间。 使用旧的使用switch语句的方法#xff0c;我们的解决方案可能如下… java switch语句 于2020年3月发布的JDK 14带有switch语句的更新版本。 这是JDK 12和JDK 13中的预览功能。 要了解差异让我们看一个简单的示例。 假设我们要基于DayOfWeek枚举来计算每日工作时间。 使用旧的使用switch语句的方法我们的解决方案可能如下所示 DayOfWeek day ... float expectedWorkingTime; switch (day) { case MONDAY: case TUESDAY: case WEDNESDAY: case THURSDAY: expectedWorkingTime 8f; break ; case FRIDAY: expectedWorkingTime 6f; break ; default : expectedWorkingTime 0f; } 使用新的switch语句或表达式我们可以像这样重写示例 DayOfWeek day ... final float expectedWorkingTime switch (day) { case MONDAY, TUESDAY, WEDNESDAY, THURSDAY - 8f; case FRIDAY - 6f; default - 0f; }; 因此新功能 switch关键字可用作表达式并返回一个值。 在此示例中开关返回的值被分配给ExpectedWorkingTime。 请注意这使我们可以使ExpectedWorkingTime为final这在以前的解决方案中是不可能的。 case语句可以包含多个值以逗号分隔。 在case语句中冒号替换为箭头- 使用箭头-语法时不需要break关键字。 如果您更喜欢使用break则在某些情况下仍可以使用较早的冒号语法。 新的收益声明 在前面的示例中我们在箭头-的右侧返回一个简单值。 但是也许我们需要首先计算该值为此我们可能需要一些额外的代码行。 例如 final float expectedWorkingTime switch (day) { case MONDAY, TUESDAY, WEDNESDAY, THURSDAY - { if (isFullTimeEmployee) { yield 8 ; } yield 4 ; } case FRIDAY - 6f; default - 0f; }; 在这里我们在第一个case语句中使用一个代码块来确定工作时间。 使用新的yield语句我们从case块返回一个值就像在方法中使用return一样。 您可以在GitHub上找到本文中显示的示例。 翻译自: https://www.javacodegeeks.com/2020/04/java-14-looking-at-the-updated-switch-statement.htmljava switch语句