C语言:switch语句中没有break的情况?如图,明明grade与case3 之后的case都

C语言:switch语句中没有break的情况?如图,明明grade与case3 之后的case都不相符,那么即使没有break继续匹配case3之后case也不应该有输出啊?

匹配到某一个case后,若该case的分值没有break语句,则会继续执行下一个case分值。直到遇到第一个break,或者整个swith语句执行完。追问

那为什么不匹配的case2case1case0之后的语句也执行输出了?

追答

我在之前的回答里,已经说得很清楚了:
switch只会进行一次的匹配,只要匹配到了,就从相应的case分支开始执行。直到遇到第一个break,或者整个swith语句执行完。

之后的过程,不会再做匹配了了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-21
正是因为没有break ,所以接下来会顺序执行,匹配了3之后,因为没有break,会按顺序执行,和前面的case几无关了。追问

按顺序执行下去的case2 case1 case0不匹配,那应该不会print里面的内容啊?为什么书上的结果有

相似回答