在switch-case语句中,如果没有在case事件后加入break,会导致在符合case条件之后的case事件同步触发,这种情况通常被称为“case穿透”。
考虑以下代码:
int n = 2; switch(n) { case 2: System.out.println(2); case 1: System.out.println(1); break; }
执行的结果为“21”,尽管n不等于1,但仍然会导致case 1的事件触发,这是因为如果没有break,程序会继续执行下一个case语句,直到遇到break或者switch case语句结束。
为了避免意外的行为,应该尽量避免在switch-case语句中不加break。