在前面的一片文章中,我们介绍了switch语句的基本用法,其实switch语句还有很多的表示方法,在这篇文章中,我将介绍switch语句的其他表示方法。
一、default的位置和省略
1.位置 :可以是任意位置,但是习惯性写在最下面。
2.省略情况:default可以省略,语法不会有问题,但是不建议省略。
3.代码示例:
int number =10;
switch(number){
case 1:
System.out.println("number的值为1");
break;
case 10:
System.out.println("number的值为10");
break;
case 20:
System.out.println("number的值为20");
break;
// default:
// System.out.println("number的值不是1,10或者20");
// //break;
4.运行结果
通过代码的运行,更加证明了default的省略情况。
二、case穿透
1.产生的原因:语句中没有break导致的
2.执行流程:
首先还是会拿着小括号表达式跟下面每个case进行匹配
如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个swirch语句
如果没有发现break,那么程序就会继续执行下一个case语句体,一致遇到break或者右大括号为止。
3.使用场景:如果有多个case语句重复了,那么我们可以考虑使用case穿透简化代码。
4.代码示例:
int number =10;
switch(number){
case 1:
System.out.println("number的值为1");
break;
case 10:
System.out.println("number的值为10");
// break;
case 20:
System.out.println("number的值为20");
break;
default:
System.out.println("number的值不是1,10或者20");
break;
5.运行结果
三、switch新特性
1.switch的新特性是在jdk12后才有的,所以jdk12之前的版本是无法使用这种格式的
2.代码示例:
int number=1;
switch(number){
case 1 -> System.out.println("一");
case 2 -> System.out.println("二");
case 3 -> System.out.println("三");
default -> System.out.println("没有这个选项");
}
由于小编的jdk版本太低了,所以运行结果可以自己去验证一下
四.、switch和if第三种各自的使用场景
if的第三种格式:一般用于对范围的判断
Switch 把有限个数据一一列举出来,让我们任选其一
五、综合练习
需求:键盘录入星期数,输出工作日,休息日(1-5)工作日,(6-7)休息日
实现过程
Scanner sc=new Scanner(System.in);
System.out.println("请录入一个整数表示星期");
int week=sc.nextInt();
//利用switch语句
switch(week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("没有这个星期");
break;
}
利用新特性进行优化:
Scanner sc=new Scanner(System.in);
System.out.println("请录入一个整数表示星期");
int week=sc.nextInt();
//利用switch语句
switch(week){
case 1,2,3,4,5 ->System.out.println("工作日");
case 6,7 -> System.out.println("休息日");
default -> System.out.println("没有这个星期");
}
这样一看是不是更简洁了呢,你学会了么,我们下期见!