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

来源:6-6 PHP条件结构之switch…case…中的break

ITer

2015-08-10 18:13

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

写回答 关注

4回答

  • 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

    zichy 回复ITer

    对头~

    2015-08-11 19:24:29

    共 2 条回复 >

  • 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!

PHP入门篇

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

455957 学习 · 6306 问题

查看课程

相似问题