news 2026/5/7 5:51:05

深度理解 Java 中的 switch —— 从基础到进阶的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度理解 Java 中的 switch —— 从基础到进阶的完整指南


文章目录

    • 一、switch 的基本语法
    • 二、switch 支持的数据类型
    • 三、经典示例:数字判断
    • 四、没有 `break` 会发生什么?(Fall-through)
    • 五、switch 支持 `String`(Java 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 之前byteshortintchar,以及对应的包装类
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。


五、switch 支持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 + enum(推荐!)

在实际项目中对枚举使用 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;}

七、Java 14+ 的增强型switch(更简洁更强大)

🔥 写法一:箭头语法(无 Fall-through)

switch(day){case1->System.out.println("Monday");case2->System.out.println("Tuesday");default->System.out.println("Unknown");}
  • 不需要break
  • 不会出现贯穿现象

🔥 写法二:switch 变成表达式 —— 可以返回值!

Stringtype=switch(day){case1->"Monday";case2->"Tuesday";default->"Unknown";};

或 Block 形式:

Stringmsg=switch(day){case1,2->"Workday";case6,7->"Weekend";default->{yield"Undefined";}};

📌新特性亮点

  • 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 后必须是“编译期常量”

finalinta=1;// 可以casea:

2. default 不一定要写,但推荐写

3. switch 表达式必须覆盖所有可能枚举值,否则编译报错(在使用表达式时)

4. 不同类型不能混用:

switch("abc"){case1:}// ❌ 错误

5. null 会导致 NPE(特别是 String)


十、switch 与 if-else 何时选哪个?

场景推荐
多值枚举、固定常量分支switch
多条件范围判断(如 >, <, >=)if-else
逻辑条件复杂if-else
简单值判断,分支多switch 更清晰

记住以下重点:

  • switch适合“值匹配”
  • Stringenum非常适合与 switch 搭配
  • Java 14+ 的增强 switch 支持“箭头语法”和“表达式”
  • 表达式形式可直接返回值
  • fall-through 是传统 switch 的坑,要注意break

参考资料

Java switch case 语句 | 菜鸟教程

switch多重选择 - Java教程 - 廖雪峰的官方网站


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 8:09:53

生成式搜索优化品牌服务排行

如何在AI时代构建品牌认知护城河随着生成式AI成为新的流量入口与需求响应中心&#xff0c;传统的搜索引擎优化策略正面临根本性变革。行业报告显示&#xff0c;超过九成的用户开始通过AI对话工具获取信息与决策建议&#xff0c;这使得企业的品牌信息能否被主流AI模型准确识别、…

作者头像 李华
网站建设 2026/5/6 3:08:15

Wan2.2-T2V-A14B如何模拟真实世界的重力与碰撞效果?

Wan2.2-T2V-A14B如何模拟真实世界的重力与碰撞效果&#xff1f; 在影视预演、广告创意和虚拟内容生成的前沿战场上&#xff0c;一个越来越关键的问题浮出水面&#xff1a;AI生成的视频&#xff0c;能不能“落地”&#xff1f;这里的“落地”&#xff0c;不仅是物理意义上的下落…

作者头像 李华
网站建设 2026/5/1 4:27:11

Wan2.2-T2V-A14B在跨文化广告本地化中的语言适应性

Wan2.2-T2V-A14B在跨文化广告本地化中的语言适应性 今天&#xff0c;一个国际快消品牌要在全球同步发布新年广告。在中国&#xff0c;画面是除夕夜的团圆饭桌&#xff1b;在墨西哥&#xff0c;它变成亡灵节祭坛前的家族聚会&#xff1b;而在沙特&#xff0c;场景又转为开斋节庭…

作者头像 李华
网站建设 2026/5/1 4:27:11

思考与练习(大学计算机基础系列:冯·诺依曼模型与 PC 硬件系统)

一、单项选择题&#xff08;本大题共 15 小题&#xff09;1、奠定了现代计算机数学与逻辑基础&#xff0c;提出可计算性理论和图灵机抽象模型的科学家是&#xff1a;① 约翰冯诺依曼② 阿兰图灵③ 克劳德香农④ 约翰阿塔纳索夫2、1945 年&#xff0c;首次将“存储程序”思想系统…

作者头像 李华
网站建设 2026/5/7 12:03:42

Wan2.2-T2V-A14B与DALL·E 3联合使用构建图文视频流水线

图文视频生成新范式&#xff1a;Wan2.2-T2V-A14B 与 DALLE 3 的协同实践 在内容爆炸的时代&#xff0c;创意产业正面临一场效率革命。广告公司需要在几小时内交付多个版本的宣传短片&#xff0c;影视团队希望快速将剧本转化为动态分镜&#xff0c;教育平台渴望把抽象知识变成生…

作者头像 李华
网站建设 2026/5/3 19:29:01

Wan2.2-T2V-A14B在跨境电商产品展示视频中的多语言适配优势

Wan2.2-T2V-A14B在跨境电商产品展示视频中的多语言适配优势 在全球化电商竞争日益激烈的今天&#xff0c;一个中国卖家上架的新款智能手表&#xff0c;可能在发布当天就要面对英语、西班牙语、阿拉伯语用户的浏览与下单。而决定他们是否点击购买的关键&#xff0c;往往不是参数…

作者头像 李华