如何用Mac Mouse Fix让你的普通鼠标超越苹果触控板 - 终极配置指南
2026/4/19 9:41:43
switch(表达式){case常量1:// 代码块1break;case常量2:// 代码块2break;default:// 默认代码块}✔关键点说明
表达式必须是某种可比较的值。case必须是常量(编译期确定)。break用来阻止继续执行“贯穿”(fall-through)。| Java 版本 | 支持类型 |
|---|---|
| Java 7 之前 | byte、short、int、char,以及对应的包装类 |
| Java 7 | 增加支持String |
| Java 5 | 允许enum |
| Java 14+ | 增强型 switch,支持表达式写法 |
intday=3;switch(day){case1:System.out.println("Monday");break;case2:System.out.println("Tuesday");break;case3:System.out.println("Wednesday");break;default:System.out.println("Unknown Day");}break会发生什么?(Fall-through)如果不写break,会出现多个 case 连续执行:
intnum=1;switch(num){case1:System.out.println("A");case2:System.out.println("B");case3:System.out.println("C");}运行结果:
A B C⚠ 因为从 case1 开始,不断“贯穿”执行后续 case。
String(Java 7+)Stringcmd="start";switch(cmd){case"start":System.out.println("Start command");break;case"stop":System.out.println("Stop command");break;default:System.out.println("Unknown command");}底层使用
String.hashCode()和equals判断。
在实际项目中对枚举使用 switch 非常规范,且可读性最佳。
enumLevel{LOW,MEDIUM,HIGH}Levellevel=Level.MEDIUM;switch(level){caseLOW:System.out.println("Low Level");break;caseMEDIUM:System.out.println("Medium Level");break;caseHIGH:System.out.println("High Level");break;}switch(更简洁更强大)switch(day){case1->System.out.println("Monday");case2->System.out.println("Tuesday");default->System.out.println("Unknown");}breakStringtype=switch(day){case1->"Monday";case2->"Tuesday";default->"Unknown";};或 Block 形式:
Stringmsg=switch(day){case1,2->"Workday";case6,7->"Weekend";default->{yield"Undefined";}};📌新特性亮点
传统写法:
case1:case2:case3:System.out.println("1~3");break;Java 14+ 写法:
case1,2,3->System.out.println("1~3");更清晰、更安全。
1. case 后必须是“编译期常量”
finalinta=1;// 可以casea:2. default 不一定要写,但推荐写
3. switch 表达式必须覆盖所有可能枚举值,否则编译报错(在使用表达式时)
4. 不同类型不能混用:
switch("abc"){case1:}// ❌ 错误5. null 会导致 NPE(特别是 String)
| 场景 | 推荐 |
|---|---|
| 多值枚举、固定常量分支 | switch |
| 多条件范围判断(如 >, <, >=) | if-else |
| 逻辑条件复杂 | if-else |
| 简单值判断,分支多 | switch 更清晰 |
记住以下重点:
switch适合“值匹配”String和enum非常适合与 switch 搭配break参考资料
Java switch case 语句 | 菜鸟教程
switch多重选择 - Java教程 - 廖雪峰的官方网站