switch case没有break会怎样

admin 33 0

在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。