案例B为什么会继续执行下去
B中num=2执行case2,为什么会执行后面的。num又没有累加上去 条件不成立啊
B中num=2执行case2,为什么会执行后面的。num又没有累加上去 条件不成立啊
2016-01-26
break的作用是阻止进行,题主已经知道了。
之所以执行完case2后,还会执行case3,是因为他是按顺序依次进行运算的,
在没有break的情况下,只要在某一个位置满足了条件,这个位置以下的条件都会无效,不管条件对不对,都会运算下去。
$num = 2; $sum = 10; switch($num){ case 1: $sum = $sum + 10;//不满足条件,跳过此次运算。 case 2: $sum = $sum + 10;//在此处case 2满足了条件,下面的运算都会进行,不管条件对不对。 case 3: $sum = $sum + 10;//因前面case 2的时候已经满足了条件,符合了判断,故此处依然执行 default: $sum = $sum + 10;//到default结束运算。 }
理清了上面顺序和原因之后,
再来看下,输出结果是40,这个40是怎来的?
初始变量$sum = 10;
在case 2:的时候 $sum = $sum +10;
这时$sum=20,因为没有了break,故将此结果带入继续进行下面运算;
在case 3:$sum = $sum +10;
此时$sum=20+10 =30;
在default:$sum = $sum+10; //即$sum = 30 +10;
故结果为40
举报