default 是 switch 的兜底执行分支,当所有 case 值都不匹配表达式结果时触发;它可置于任意位置但仅能有一个,推荐末尾并加 break 避免穿透,不处理 null 引发的异常。

default 的位置和写法
default 可以放在 switch 语句中的任意位置(开头、中间、结尾),但必须满足:
• 同一 switch 内只能有一个 default
• 它后面跟的是冒号 `:`,不是括号或等号
• 推荐放在末尾,符合阅读习惯,也避免因遗漏 break 导致意外穿透
default 必须配合 break 吗?
不是强制,但强烈建议加 break:
- 不加 break:执行完 default 后,会继续向下执行后续 case(如果有的话),造成“穿透”
- 加 break:确保只执行 default 分支,然后退出 switch
- 若故意利用穿透(如多个 case 共享逻辑),则 default 后可不加 break,但需明确设计意图
什么时候 default 会被触发?
仅当 expression 的值与所有 case 后的常量值(int、char、String、enum 等)均不相等时触发。例如:
注意:如果 expression 是 null 且 switch 作用于 String 类型(Java 7+),会抛出 NullPointerException,default 不会捕获;同理,枚举类型传入 null 也会报错。default 只处理“值不匹配”,不处理运行时异常。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
一个安全实用的写法示例
处理用户输入的星期编号(1–7),其他值走 default:
int day = 0; // 比如用户输了个 0 或 8
switch (day) {
case 1: System.out.println("周一"); break;
case 2: System.out.println("周二"); break;
case 3: System.out.println("周三"); break;
case 4: System.out.println("周四"); break;
case 5: System.out.println("周五"); break;
case 6: System.out.println("周六"); break;
case 7: System.out.println("周日"); break;
default: System.out.println("无效输入,请输入 1~7"); break;
}
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










