2.3 switch 语句
当你需要根据某个值进行多路分支时,一长串 else if 会显得啰嗦。switch 可以让结构更清楚。
java
switch (op) {
case '+':
System.out.println(a + b);
break;
case '-':
System.out.println(a - b);
break;
default:
System.out.println("Unsupported");
break;
}switch 会拿括号里的值和每个 case 比较。一旦某个 case 匹配,程序就从那里开始执行。
注意
Java 的
switch 可以用于 byte、short、int、char、String、枚举等类型,但不能直接用于 double。break 与 fall-through
break 用于跳出 switch。如果忘记写 break,程序会继续执行后面的 case,这种行为叫 fall-through(贯穿)。
有时可以故意利用 fall-through,让多个 case 共享同一段代码:
java
switch (grade) {
case 'A':
case 'B':
System.out.println("通过");
break;
case 'C':
System.out.println("及格");
break;
default:
System.out.println("不及格");
break;
}这里 'A' 和 'B' 输出相同结果,因为 'A' 后面没有 break,会继续进入 'B'。但大多数时候,漏掉 break 都是 bug,所以要小心。
default
default 负责处理所有没有匹配到的情况,类似 if-else if-else 里的 else。建议总是写上 default,哪怕只是输出一条提示,也能让程序在遇到意外输入时表现得更可预测。
正在加载交互实验...
正在加载概念检查...
正在加载本节练习...