java switch语句_Java 14:查看更新的switch语句
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语句相关推荐
- java 新功能_Java 14的新功能
java 新功能 2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进. 但是,Oracle还向您提供Java的较旧 ...
- java中循环语句_Java语法基础之循环结构语句详解
一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...
- java 分析内存_Java 内存查看与分析
1:gc日志输出 在jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplication ...
- java 对数运算_Java语言 第二章 运算和语句
1.数据运算 运算由表达式表示,表达式由运算符和运算分量组成,运算分量可以是常量.变量和方法调用Java基本运算分类图 1.1 赋值运算 1.1.1 简单赋值运算变量 = 表达式 程序执行过程: (1 ...
- Java 14:查看更新的switch语句
2020年3月发布的JDK 14附带了switch语句的更新版本. 这是JDK 12和JDK 13中的预览功能. 要了解差异,让我们看一个简单的示例. 假设我们要基于DayOfWeek枚举来计算每日工 ...
- java sql update 语句_java – SQL如何使用一个SQL语句更新表行
我有一个包含2列的表,用于在Oracle数据库中存储应用程序设置.这是一个基本的例子: 我想创建一个用预准备语句更新值的java方法. 示例代码: 更新的代码 public void updateDB ...
- java功能模块_Java 14功能
java功能模块 Keeping up with the six-month cycle tradition, after the release of Java 13 on September 17 ...
- java中的循环语句_Java中三种常用的循环语句,一看就懂~
循环语句:满足一定条件的情况下反复执行一个操作. Java中提供三种常用的循环语句: 1.while循环语句 while先判断为真,再执行while循环语句,如果条件为假,则跳出循环 语法如下: Wh ...
- java for嵌套for循环语句_java中的for循环嵌套语句怎么执行?
展开全部 控制语句--for:语句的嵌套应用:累加求和,计数器:循环嵌套. 一.语62616964757a686964616fe58685e5aeb931333365646232句的嵌套应用 语句嵌套 ...
最新文章
- com.sun.crypto.provider.SunJCE
- mysql系列之2.mysql多实例
- [导入]C#优化字符串操作【月儿原创】
- 使用IntelliJ书签
- 7-1 ATM机类结构设计(一) (100 分)
- FFMpeg写MP4文件例子分析
- poj 3420 Quad Tiling 【矩阵乘法】
- PageAdmin网站建设教程:仿58同城站群系统实现不同地区Ip跳转不同分站
- f-stack 编译测试笔记
- 直线扫描转换-DDA算法
- Matlab imnoise函数的说明
- 一个基于nodejs的青果教务系统的爬虫
- 【51nod-1521】一维战舰
- python趋势图_python绘制趋势图的示例
- BBU+RRU基本介绍
- 文件服务器和ftp服务器的区别
- ipv4和ipv6地址长度
- 解决iText 5.0.1,加入iTextAsian.jar 出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H'
- 在ISE下分析约束时序
- HTML链接CSS的方法
热门文章
- CF785D Anton and School - 2
- Desert King POJ - 2728
- acwing221 龙哥的问题
- CodeForces730E Award Ceremony(拓扑排序+结论)
- 模板:树上启发式合并(dsu on tree)
- Loj#3077-「2019 集训队互测 Day 4」绝目编诗【结论,虚树,鸽笼原理】
- P7581-「RdOI R2」路径权值【长链剖分,dp】
- P1446-[HNOI2008]Cards【Burnside引理,dp】
- 学习手记(2018/7/14~2018/7/18)——快乐纪中
- P3899 [湖南集训]更为厉害(线段树合并、长链剖分、二维数点)