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

B例子解释看不懂

在B例子中,执行了第二个case , $sum变为20,由于没有break,继续执行第三个case,然后又执行default,$sum变为了40。 这个解释看不懂啊。 根据switch case语法,如果要执行case 3, num的值不应该是3才能执行吗?

正在回答

1 回答

您好,按照我的理解,对于一个switch case语句,如果有一个分支条件满足后,如B例子中,执行了第二个case , $sum变为20,由于没有break,会继续执行下面的分支,注意:此时程序已经不执行判断第三个及以后的case分支中条件了,但会执行除此以外的所有可执行语句。也就是说,如果不希望程序在满足一个分枝后不继续执行下面的分支(如果有),则需要在该分支中的最后添加break;用以跳出分支。


较为一般的形式为:

switch(表达式){ 
    case 常量表达式1:  语句1;
    case 常量表达式2:  语句2;
    … 
    case 常量表达式n:  语句n;
    default:  语句n+1;
}

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。若出现break;则跳出分支判断。

参考资料:C语言switch语句的用法详解

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

财迷煎饼 提问者

谢谢,我查看了其他问答,这条说的更清晰一些。 http://www.imooc.com/qadetail/117177 再次感谢。
2016-05-24 回复 有任何疑惑可以回复我~
#2

linmufengrand 回复 财迷煎饼 提问者

嗯,我也看了,确实会更清楚些,我也是才学PHP,理解得不是很好。
2016-05-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

B例子解释看不懂

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