今天论坛有人问,x一直等于二,为什么还会执行case里面的代码块,这个y输出为5。我也是想了半天,后来看他其他人的回帖,以及自己的百度,才发现这是属于switch穿透。
今天看到的一个题目,如题:
那么什么是switch穿透呢:即switch进入的第一个case判断成功进入的代码块如果没有break的话,后面所有的case都不会判断,默认为true直接执行里面的代码块。
上图中的执行顺序:
所以正确写法: 所有case和default里面代码块后面都要写break;default要写在最后面。
实际工作中请保持如下模式:
输出为4