2026/1/25 12:00:54
网站建设
项目流程
js判断是手机还是电脑访问网站,太平洋建设 网站,做百度网站费用多少合适,制作书签怎么做文章目录一、switch 的基本语法二、switch 支持的数据类型三、经典示例#xff1a;数字判断四、没有 break 会发生什么#xff1f;#xff08;Fall-through#xff09;五、switch 支持 String#xff08;Java 7#xff09;六、switch enum#xff08;推荐#xff01;数字判断四、没有 break 会发生什么Fall-through五、switch 支持 StringJava 7六、switch enum推荐七、Java 14 的增强型 switch更简洁更强大 写法一箭头语法无 Fall-through 写法二switch 变成表达式 —— 可以返回值八、多个 case 合并传统写法 vs 新写法九、注意事项面试必问十、switch 与 if-else 何时选哪个一、switch 的基本语法switch(表达式){case常量1:// 代码块1break;case常量2:// 代码块2break;default:// 默认代码块}✔关键点说明表达式必须是某种可比较的值。case必须是常量编译期确定。break用来阻止继续执行“贯穿”fall-through。二、switch 支持的数据类型Java 版本支持类型Java 7 之前byte、short、int、char以及对应的包装类Java 7增加支持StringJava 5允许enumJava 14增强型 switch支持表达式写法三、经典示例数字判断intday3;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 连续执行intnum1;switch(num){case1:System.out.println(A);case2:System.out.println(B);case3:System.out.println(C);}运行结果A B C⚠ 因为从 case1 开始不断“贯穿”执行后续 case。五、switch 支持StringJava 7Stringcmdstart;switch(cmd){casestart:System.out.println(Start command);break;casestop:System.out.println(Stop command);break;default:System.out.println(Unknown command);}底层使用String.hashCode()和equals判断。六、switch enum推荐在实际项目中对枚举使用 switch 非常规范且可读性最佳。enumLevel{LOW,MEDIUM,HIGH}LevellevelLevel.MEDIUM;switch(level){caseLOW:System.out.println(Low Level);break;caseMEDIUM:System.out.println(Medium Level);break;caseHIGH:System.out.println(High Level);break;}七、Java 14 的增强型switch更简洁更强大 写法一箭头语法无 Fall-throughswitch(day){case1-System.out.println(Monday);case2-System.out.println(Tuesday);default-System.out.println(Unknown);}不需要break不会出现贯穿现象 写法二switch 变成表达式 —— 可以返回值Stringtypeswitch(day){case1-Monday;case2-Tuesday;default-Unknown;};或 Block 形式Stringmsgswitch(day){case1,2-Workday;case6,7-Weekend;default-{yieldUndefined;}};新特性亮点switch 语句 → 表达式箭头写法更简洁可直接返回值不会误触发 fall-through八、多个 case 合并传统写法 vs 新写法传统写法case1:case2:case3:System.out.println(1~3);break;Java 14 写法case1,2,3-System.out.println(1~3);更清晰、更安全。九、注意事项面试必问1. case 后必须是“编译期常量”finalinta1;// 可以casea:2. default 不一定要写但推荐写3. switch 表达式必须覆盖所有可能枚举值否则编译报错在使用表达式时4. 不同类型不能混用switch(abc){case1:}// ❌ 错误5. null 会导致 NPE特别是 String十、switch 与 if-else 何时选哪个场景推荐多值枚举、固定常量分支switch多条件范围判断如 , , if-else逻辑条件复杂if-else简单值判断分支多switch 更清晰记住以下重点switch适合“值匹配”String和enum非常适合与 switch 搭配Java 14 的增强 switch 支持“箭头语法”和“表达式”表达式形式可直接返回值fall-through 是传统 switch 的坑要注意break参考资料Java switch case 语句 | 菜鸟教程switch多重选择 - Java教程 - 廖雪峰的官方网站