问答详情
源自:6-6 PHP条件结构之switch…case…中的break

没有break 会一直执行到底嘛不是,应该是执行default下面的语句,这样B列子的值就是20,但是为什么输出了40 啊?不懂!!

没有break 会一直执行到底嘛不是,应该是执行default下面的语句,这样B列子的值就是20,但是为什么输出了40 啊?不懂!!

提问者:ITer 2015-08-10 18:13

个回答

  • zichy
    2015-08-11 08:41:32
    已采纳

    没有break,代码会按照顺序结构依次执行代码。

    //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;
    }

    因为 num = 2

    所以从 case 2 开始执行

    sum = 10 

     case 2: sum = 10 + 10 

    case 3:   sum = 20 + 10

    default: sum = 30 + 10  

    sum = 40

  • qq_transparenth_03120302
    2016-04-02 12:42:21

    老师,你好厉害

  • angke
    2015-11-20 19:30:49

    和c语言不一样的

  • 慕运维2907241
    2015-08-28 19:14:54

    看了楼上的解释瞬间明白了,因为在PHP中变量会一直变的~~~所以最后累加成了40而非20!