由于没有使用break语句,在成功匹配后,会继续往下执行后面的case语句

发布时间 2023-11-11 12:51:25作者: 龙陌

执行以下程序后,x的值为 3

 var x=0; 
 switch(++x) { 
     case 0: ++x; 
     case 1: ++x; 
     case 2: ++x; 
 }

官方解析:
++x是前置自增,也就是先自增加1,再将x返回,
所以switch表达式的值为1,匹配第二个case语句,
同样对x进行前置自增,x的值变为2,
由于没有使用break语句,在成功匹配后,会继续往下执行后面的case语句,
也就是继续执行第三个case语句,最终x值为3