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.html

java switch语句

java switch语句_Java 14:查看更新的switch语句相关推荐

  1. java 新功能_Java 14的新功能

    java 新功能 2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进. 但是,Oracle还向您提供Java的较旧 ...

  2. java中循环语句_Java语法基础之循环结构语句详解

    一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...

  3. java 分析内存_Java 内存查看与分析

    1:gc日志输出 在jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplication ...

  4. java 对数运算_Java语言 第二章 运算和语句

    1.数据运算 运算由表达式表示,表达式由运算符和运算分量组成,运算分量可以是常量.变量和方法调用Java基本运算分类图 1.1 赋值运算 1.1.1 简单赋值运算变量 = 表达式 程序执行过程: (1 ...

  5. Java 14:查看更新的switch语句

    2020年3月发布的JDK 14附带了switch语句的更新版本. 这是JDK 12和JDK 13中的预览功能. 要了解差异,让我们看一个简单的示例. 假设我们要基于DayOfWeek枚举来计算每日工 ...

  6. java sql update 语句_java – SQL如何使用一个SQL语句更新表行

    我有一个包含2列的表,用于在Oracle数据库中存储应用程序设置.这是一个基本的例子: 我想创建一个用预准备语句更新值的java方法. 示例代码: 更新的代码 public void updateDB ...

  7. java功能模块_Java 14功能

    java功能模块 Keeping up with the six-month cycle tradition, after the release of Java 13 on September 17 ...

  8. java中的循环语句_Java中三种常用的循环语句,一看就懂~

    循环语句:满足一定条件的情况下反复执行一个操作. Java中提供三种常用的循环语句: 1.while循环语句 while先判断为真,再执行while循环语句,如果条件为假,则跳出循环 语法如下: Wh ...

  9. java for嵌套for循环语句_java中的for循环嵌套语句怎么执行?

    展开全部 控制语句--for:语句的嵌套应用:累加求和,计数器:循环嵌套. 一.语62616964757a686964616fe58685e5aeb931333365646232句的嵌套应用 语句嵌套 ...

最新文章

  1. com.sun.crypto.provider.SunJCE
  2. mysql系列之2.mysql多实例
  3. [导入]C#优化字符串操作【月儿原创】
  4. 使用IntelliJ书签
  5. 7-1 ATM机类结构设计(一) (100 分)
  6. FFMpeg写MP4文件例子分析
  7. poj 3420 Quad Tiling 【矩阵乘法】
  8. PageAdmin网站建设教程:仿58同城站群系统实现不同地区Ip跳转不同分站
  9. f-stack 编译测试笔记
  10. 直线扫描转换-DDA算法
  11. Matlab imnoise函数的说明
  12. 一个基于nodejs的青果教务系统的爬虫
  13. 【51nod-1521】一维战舰
  14. python趋势图_python绘制趋势图的示例
  15. BBU+RRU基本介绍
  16. 文件服务器和ftp服务器的区别
  17. ipv4和ipv6地址长度
  18. 解决iText 5.0.1,加入iTextAsian.jar 出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H'
  19. 在ISE下分析约束时序
  20. HTML链接CSS的方法

热门文章

  1. CF785D Anton and School - 2
  2. Desert King POJ - 2728
  3. acwing221 龙哥的问题
  4. CodeForces730E Award Ceremony(拓扑排序+结论)
  5. 模板:树上启发式合并(dsu on tree)
  6. Loj#3077-「2019 集训队互测 Day 4」绝目编诗【结论,虚树,鸽笼原理】
  7. P7581-「RdOI R2」路径权值【长链剖分,dp】
  8. P1446-[HNOI2008]Cards【Burnside引理,dp】
  9. 学习手记(2018/7/14~2018/7/18)——快乐纪中
  10. P3899 [湖南集训]更为厉害(线段树合并、长链剖分、二维数点)