在 Java 开发中,switch 语句的穿透(Fall-through)特性常常被新手忽略。如果 case 分支后没有显式添加 break 关键字,程序不会自动跳出,而是继续执行下一个 case 甚至 default 分支的代码。
下面是一个简单的示例:
public static void main(String[] args) {
int a = 2;
switch (a) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
default:
System.out.println("3");
}
}
运行这段代码,控制台会打印出 2 和 3。这是因为变量 a 的值是 2,匹配到了 case 2,但因为没有 break,执行流直接'掉'进了 default 分支。
实际工作中,除非确实需要这种穿透逻辑,否则建议在每个 case 结束后加上 break,或者使用 return 来明确控制流程,避免产生难以排查的逻辑 bug。

