您的位置:首页 > 其它

case语句没有加break引起系统崩溃

2011-09-13 10:12 246 查看
一个经典例子是统计原因个
switch(c)//假如c是'e'

{

case 'a';

++i;

case 'e';//这里满足个数+1

++i;

case 'k';

++i; //但是你上面不break这里也会执行i又+1

case 'o';

++i; // //但是你上面不break这里也会执行i又+1

}

也许你会觉得只执行一次++i,但是实际上后面都执行了,++i执行了三次,case语句不像if语句那样只执行条件符合语句。
switch case的处理是这样的,如果不加入break,那么他会顺着那个找到的case顺序执行下去,知道遇到break,或者return
据说这是 ansi c 的设计者有意为之,中文命为“贯穿”的特性

希望大家在开发过程中多注意些细节。

case 后面只能是整型或字符型的常量或常量表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: