为了账号安全,请及时绑定邮箱和手机立即绑定

为什么两个例字都是从第二个CASE开始执行,请大神给详细分析下!!

我看的分析对不,


<?php
//A例子
$num = 2;
$sum  = 10;
switch($sum){     //这里的$sum 值是上面付给的10么?
    case 1:
        $sum = $sum  + 10;   //这里为什么没有执行?
    break;        
    case 2:
        $sum = $sum  + 10;  //这里和上面一样么?如果一样为什么上面的为什么不有执行,而从这开始。    break;
     case 3:
        $sum = $sum  + 10;
    break;    
    default:
        $sum = $sum  + 10;
}
 echo "A例子的值是:".$sum."<br />";
//B例子
$num = 2;
$sum  = 10;
switch($num){
    case 1:
        $sum = $sum  + 10;
    case 2:
        $sum = $sum  + 10;
    case 3:
        $sum = $sum  + 10;
    default:
        $sum = $sum  + 10;
}
 echo "B例子的值是:".$sum."<br />";
?>

正在回答

3 回答

刚开始我也没搞懂,看了前面一章和下面朋友们的解答才明白:switch(//这个括号里要输入的是条件),他和后面的case()括号里面的是要对应 的,相当于总和分支或者说大哥和小弟,大哥说啥,小弟听啥,大哥说switch($num),因为上面说$num=2,所以switch($num)也就 是switch(2),下面的分支条件case()括号里就要找对应的2,所以从case(2)条件下执行,如果有break这一个障碍,就停下直接输出 结果,如果没有,就一直执行到底,或者执行到有break出现的那一条件下。。说的够生动形象具体吧。哈哈哈

1 回复 有任何疑惑可以回复我~
#1

nehajhon

正解,懂了
2015-05-15 回复 有任何疑惑可以回复我~

A例子里switch括号里的是$num吧,不是$sum,case1不执行是因为$num != 1,case1的完整意思就是case($num=1),当循环到case2的时候条件成立了才开始执行,但是此后若没有break;其他的表达式也会被执行,即使条件不成立;

0 回复 有任何疑惑可以回复我~

同问啊,我也不理解

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么两个例字都是从第二个CASE开始执行,请大神给详细分析下!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信