Java多重选择switch
除了if语句外,还有一种条件判断,是根据某个表达式的结果,分别去执行不同的分支。
1、switch多重选择
switch语句根据switch(表达式)计算结果,跳转到匹配的case结果,然后继续执行后续语句,直到遇到break结束执行。
switch case语句语法格式:
switch(expression){case value1 :// 语句1break;case value2 :// 语句2break;// 任意数量的case语句... ... default : // 可选// 都不满足条件时,执行的语句
}
如果没有匹配到任何case,switch语句不会执行任何语句。这时可以给switch语句加上一个default,当没有匹配到任何case时,执行default。
虽然switch语句可以写成if语句形式,但对于多个"=="判断的情况,使用switch结构更加清晰。
int option = 3;
switch (option) {case 1:System.out.println("Selected 1");break;case 2:System.out.println("Selected 2");break;case 3:System.out.println("Selected 3");break;default:System.out.println("Not selected");break;
}// 输出结果:
Selected 3
注意:case语句并没有花括号{}, switch语句中对每个case正确编写beak语句才能对应得上,case语句如果漏写break将导致意想不到的结果,case语句具有"穿透性"。
switch的计算结果必须是整型、字符串或枚举类型。
2、switch表达式
使用switch时,如果遗漏了break,就会造成严重的逻辑错误,而且不易在源代码中发现错误。
从Java12开始,switch语句升级为更简洁的表达式语法,使用类似于模式匹配的方法,保证只有一种路径会被执行,并且不需要break语句。
String fruit = "apple";
// java12开始,表达式语法
switch(fruit) {case "apple" -> System.out.println("Selected apple");case "pear" -> System.out.println("Selected pear");case "mango" -> {System.out.println("Selected mango");System.out.println("Good choice!");}default -> System.out.println("No fruit selected");
}
// 使用switch语句给变量赋值
int opt = switch (fruit) {case "apple" -> 1;case "pear", "mango" -> 2;default -> {int code = fruit.hashCode();yield code; // switch语句返回值}};System.out.println("opt = " + opt);// 运行结果:
Selected apple
opt = 1
注意:新语法使用"->",如果有多条语句,需要用{}括起来。
不要写break语句,因为新的语法只会执行匹配的语句,没有穿透效应。
3、使用yield返回值
如果需要写很多语句,放到{...}里,可以使用yield返回一个值作为switch语句的返回值。
String fruit = "orange";
int opt = switch (fruit) {case "apple" -> 1;case "pear", "mango" -> 2;default -> {int code = fruit.hashCode();yield code; // switch语句返回值}
};
System.out.println("opt = " + opt);// 输出结果
opt = -1008851410
Java多重选择switch相关推荐
- java用于选择结构的关键字_Java结构
Java结构 选择结构 什么是 if 选择结构 基本 if 选择结构 if选择结构是根据条件判断之后再做处理的一种语法结构. if(条件){ //代码块//条件成立后要执行的代码,可以是一条语句,也可 ...
- Java 中的 Switch 都支持 String 了,为什么不支持 long?
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 我们知道 Java Switc ...
- Java中的 Switch 是如何支持 String 的?为什么不支持 long?
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 作者:jitwxs http ...
- Java的选择结构详解
Java的选择结构 一 . Java的执行语句 1.顺序语句:方法中的代码从上往下执行 2.分支语句:根据不同的条件,指定不同的功能 2.1 if分支 2.2 switch分支 3.循环语句:条件成立 ...
- java switch null_[改善Java代码]小心switch带来的空值异常
使用枚举定义常量时,会伴有大量的switch语句判断,目的是伪类每个枚举项解释其行为,例如: 1 public classClient {2 public static voidmain(String ...
- 确定多重选择列表控件 (List Control) 中的选定内容
确定多重选择列表控件 (List Control) 中的选定内容 依次通过控件的 Items 集合,分别测试每一项的 Selected 属性. 下面的示例显示如何测试多重选择 ListBox 控件(名 ...
- [初级]Java中的switch对整型、字符型、字符串的具体实现细节
转载自 [初级]Java中的switch对整型.字符型.字符串的具体实现细节 Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样 ...
- 【Java】选择结构排坑指南
最近在实践中发现了一个问题,分享一下 众所周知,Java的选择结构和循环结构是允许单行不加大括号的 有的资料上会提倡这种模式,因为可以缩减代码的行数 也有的不提倡,认为可能会在后期添加行数很麻烦以及出 ...
- java中选择排序和冒泡排序_Java选择排序就是比冒泡排序牛「具体详情,请看此文」...
什么是选择排序 选择排序原理即是,遍历元素找到一个最小(或最大)的元素,把它放在第一个位置,然后再在剩余元素中找到最小(或最大)的元素,把它放在第二个位置,依次下去,完成排序. 时间复杂度 选择排序的 ...
- excel vba 快速显示及隐藏所选数据行,并获取多重选择区地址的行列号
Sub Macro3() Application.OnKey "^h", "sHide" '仅隐藏选择的行2013.3.15 by lijilin Applic ...
最新文章
- python transformer category_Python 生成VOC格式的标签实例
- Linux设备驱动Hello World程序介绍
- ETHNET DHCP的两种方式
- Gentoo 安装日记 04 (开启ssh服务,ssh登录虚拟机)
- web安全之点击劫持攻击(clickjack)
- 完美解决ALEXA工具条无法显示或显示白框
- 直接设置Activity的背景颜色
- spring项目链接RabbitMQ集群
- mysql 主主复制
- ubuntu下c++中base64编解码测试和图片编解码测试
- java关键字_Java关键字
- docker探索-在centos6.5中安装docker(三)
- 2021-09-02二叉树的中序遍历
- 10款Mac上程序员装机必备的开发工具推荐和下载
- eclipse android环境搭建,Eclipse Android开发环境搭建教程
- js数组 reduce函数
- SpringBoot+redis时事务和SessionCallback的使用和抉择
- ABAP学习笔记-基础语法-06-流程控制(01)-条件语句
- 企业建站有必要使用高防服务器吗?
- 操作系统课程项目 OS project —— Pintos from Project 1 to Project 3