1、switch语句

if/else语句不同,switch语句可以有许多可能的执行路径。switch可用于基本类型byte、short、char和int、它们各自的包装类型(byte、short、Character和Integer)、枚举类型和字符串type1。if-else语句用于基于范围的值或条件表达式判断,而switch语句用于仅基于单个值判断。

public class Main {public static void main(String[] args) {String message = "";PaymentStatus paymentStatus = PaymentStatus.PARTPAID;switch (paymentStatus) {case UNPAID:message = "订单还没有付款。请注明最低/全部金额。";break;case PARTPAID:message = "订单的部分款项已付。";break;case PAID:message = "订单已全部付清。";break;default:throw new IllegalStateException("Invalid payment status: " + paymentStatus);}System.out.println(message);}
}
enum PaymentStatus {UNPAID, PARTPAID, PAID, DISPUTED, UNKNOWN;
}

注意:JDK 7增加了switch语句对字符串的支持,

2、switch表达式

switch表达式是在Java SE 12中引入的。然而,它仍然是Java SE 12和13的预览特性,并最终与Java SE 14标准化。与任何表达式一样,switch表达式的计算结果为单个值,并且可以在语句中使用。它还引入了->标签,从而无需使用break语句来防止失败。到Java SE 15为止,所支持的数据类型没有变化(在上面的switch语句部分中提到过)。

使用->实现

 public class Main {public static void main(String[] args) {PaymentStatus paymentStatus = PaymentStatus.PARTPAID;String message = switch (paymentStatus) {case UNPAID -> "订单还没有付款。请注明最低/全部金额。";case PARTPAID -> "订单的部分款项已付。";case PAID -> "订单已全部付清。";default -> throw new IllegalStateException("Invalid payment status: " + paymentStatus);};System.out.println(message);}
}
enum PaymentStatus {UNPAID, PARTPAID, PAID, DISPUTED, UNKNOWN;
}

使用yield实现

注意:从Java SE 13开始,可以使用yield语句,而不是箭头操作符(->),从switch表达式返回一个值。

 public class Main {public static void main(String[] args) {PaymentStatus paymentStatus = PaymentStatus.PARTPAID;String message = switch (paymentStatus) {case UNPAID:yield "订单还没有付款。请注明最低/全部金额。";case PARTPAID:yield "订单的部分款项已付。";case PAID:yield "订单已全部付清。";default:throw new IllegalStateException("Invalid payment status: " + paymentStatus);};System.out.println(message);}
}
enum PaymentStatus {UNPAID, PARTPAID, PAID, DISPUTED, UNKNOWN;
}

3、switch语句与switch表达式区别

从上面介绍及示例,可以看出switch语句与switch表达式主要区别是写法不同switch表达式可以使用箭头操作符(->),或者也可以使用 yield。并且可以省略break关键字,写法更简洁。另外使用较老版本的JDK,switch表达式也是不支持的。switch表达式最终是返回一个值为最终结果,而switch语句不能返回值,必须在每个case中进行处理。

有帮到你的点赞、收藏一下吧

需要更多教程,微信扫码即可

java switch语句与switch表达式区别及使用相关推荐

  1. java选择语句中switch的用法(详细介绍)

    一.什么时候用switch? 在java中控制流程语句是由选择语句.循环语句.跳转语句构成.选择语句包括 if 和 switch,在过多的使用 if 语句嵌套会使程序很难阅读,这时利用 switch ...

  2. Java条件语句之 switch

    Java条件语句之 switch 当需要对选项进行等值判断时,使用 switch 语句更加简洁明了.例如:根据考试的名次,给予前 4 名不同的奖品.第一名,奖励笔记本一台:第二名,奖励 IPAD 2 ...

  3. JAVA 条件语句 跟PHP没有区别!!!!!

    Java条件语句之 if 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这种"需要先判断条件,条件满足后才 ...

  4. java case 语句_ECMAScript switch 语句

    switch 语句 switch 语句是 if 语句的兄弟语句. 开发者可以用 switch 语句为表达式提供一系列的情况(case). switch 语句的语法: switch (expressio ...

  5. java switch语句_Java switch语句

    Java switch语句 package cn.geekeryi; public class SwitchTest { public static void main(String[] args) ...

  6. php中的switch语句,phpswitch_PHP Switch 语句

    摘要 腾兴网为您分享:PHP Switch 语句,智慧农业,一加商店,天天向商,随身行等软件知识,以及金中投软件,玩客云电脑,快刷名片赞,火狐浏览器便携版,l4168打印机驱动,无人机之家,沈阳桃仙国 ...

  7. java switch语句作用域,switch语句

    一.复习 1.标识符(自己定义的,下划线.美元符号) 2.驼峰命名(变量名,办法名首字母小写) 3.关键字(就是固定的那几个) 4.字面值(数据.有类型.八种基本类型从小到大,byte\char=sh ...

  8. Java SE 12扩展Switch语句/表达式完整指南

    本文提供了Java SE 12扩展Switch语句/表达式的完整指南.文章详细介绍了扩展Java switch语句将其用作增强版switch语句或表达式.为帮助理解本文提供了具体案例. 本文要点 现在 ...

  9. 第三次学JAVA再学不好就吃翔(part11)--基础语法之switch语句

    学习笔记,仅供参考 文章目录 JAVA基础语法 switch语句 if语句和switch语句的区别 JAVA基础语法 switch语句 格式 switch (表达式) {case 值1:语句体1;br ...

最新文章

  1. [codeforces]Round #538 (Div. 2) F. Please, another Queries on Array?
  2. ElasticSearch大数据分布式弹性搜索引擎使用
  3. 数论 —— 高次同余方程与 BSGS 算法
  4. Soul网关源码阅读(七)限流插件初探
  5. java 存储过程简单例子
  6. 二进制的科学计数法?白话谈谈计算机如何存储与理解小数:IEEE 754
  7. 从xml数据集到FairMOT数据集转换
  8. 我短期内不会再到实体书店买书了,同时分析各种获取知识的方法
  9. Django model 设置数据库 字段 编码
  10. EasyPR如何添加绿牌C++版
  11. Win10 LTSC 2019进入桌面时假死的拆中处理方法
  12. NPOI导出word,NPOI导出word表格,NPOI复制table表格 XWPFDocument中XWPFTable
  13. Go调试工具Delve
  14. 【人工智能 AI】机器学习快速入门教程(Google)
  15. Docker容器-------网络模式,数据卷和数据卷容器
  16. 餐饮管理系统(JavaWeb+SSH+MySQL)
  17. 二维码生成和解码(二)
  18. 路径规划与轨迹规划学习3——曲线插值法
  19. Charles4.0最新版破解
  20. 使用lamp搭建个人博客

热门文章

  1. 李国庆三位姐姐加入战局 正面刚俞渝:如继续侮辱我们,也将抓破你的脸!
  2. 音乐版视觉中国 ?VFine Music:我没有 我不是
  3. 垃圾分类逼疯上海人 微信官方终于出手!
  4. 小米CC开机动画公布:扑面而来的青春活力
  5. 报复性充值?《和平精英》iOS版上线三天 收入近1亿元
  6. 罗永浩站台微商大会出场费5万?主办方:5万出场费是谣传
  7. 后置四摄已安排?华为P30 Pro设计渲染图曝光
  8. request.META里包含了哪些数据?
  9. nuxt webpack配置css,基于nuxt通过webpack配置ant-Design-vue的主题切换配置
  10. linux中权限的介绍,Linux文件权限的入门介绍