Switch多重选择¶
本章评级
欸,你想,如果我想要有很多的选择,用if
语句是不是太麻烦了?没错,所以我们今天就来学习switch语句
。
一个基本的Switch
语句长这样
switch(表达式){
case 值 :
代码块
break; //中断(可选)
case 值 :
代码块
break; //中断(可选)
//case语句的数量理论上是无限的
default : //默认(可选)
代码块
}
Switch
语句通过switch(表达式)
的结果,跳转到与表达式之匹配的case
上执行,再 通过判断有无break来决定是否结束执行。
举个栗子¶
我们来看一个简单的栗子
public class Tea {
public static void main(String[] args) {
int clock = 2;
switch (clock) {
case 2:
System.out.println("1点钟,是时候睡觉了(¦3[▓▓]");
break;
case 3:
System.out.println("三点钟了,饮茶先啦");
break;
case 4:
System.out.println("四点钟了,是时候吃两面包夹芝士");
break;
default:
System.out.println("这什么乱七八糟的");
break;
}
}
}
修改高亮语句的数字为2
,3
,4
,114514
后依次观察,可以发现,如果clock
的值不符合任何一个case
,那么就会执行default
内的代码块。
switch语句具有穿透性
使用switch()
语句时,一定注意不要漏写break,否则switch()
语句将会在找到表达式对应的case
后直接无视表达式的值,向下执行所有case
内的代码块。
case语句可以使用字符串进行匹配。
在Java12中的case
在Java12中,由于不写break;
将会带来严重的逻辑错误且不易被发现,故case
多了一种形式:表达式形式。
长这样:
public class Main {
public static void main(String[] args) {
String fruit = "apple";
switch (fruit) {
case "apple" -> System.out.println("选择 apple");
case "pear" -> System.out.println("选择 pear");
case "mango" -> {
System.out.println("选择 mango");
}
default -> System.out.println("欸,还没选呢,就是玩");
}
}
}
switch
的case
指定方式由:
变成了->
且执行多个语句时,需要增加花括号{}
这个栗子同时也展示了switch语句能够对字符串进行判断。
最后更新: 2021-08-06