let x=1,y=0,a=0,b=0;
switch(x){
case 1:
swich(y){
case 0:
a++;
break;
case 1:
b++;
break;
}
case 2: a++;b++;break;
case 3: a++;b++;
}
console.log(a,b); //2 1
以上代码,打印结果a=2,b=1
第一层swich参数是x,满足case 1 的条件,进入swich(y)里面,x满足 case 0条件,a++。此时a就等于1了,break跳出这一层swich。
这里重点来了swich(x)中的 case 1执行完毕后没有break,也就是代码继续执行,后面的条件将不再进行判断,直到碰到break或者代码结束为止。下面执行到case 2,a++和b++。a就等于2,b等于1,这时就遇到了break跳出。
这里最终结果就是 2 1;