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 后面只能是整型或字符型的常量或常量表达式
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 后面只能是整型或字符型的常量或常量表达式
相关文章推荐
- 当case后有语句时,break不能省略,在没有default的情况下,最后一个case后即使没有语句,也要加上break。
- switch语句,在case中没有break时出现穿透
- C语言之switch case语句 case 中没有break时会继续执行下一个case无论条件是否满足都会执行
- switch-case语句忘记加break的后果
- 使用fsck命令修复linux文件系统错误【避开引起系统崩溃,启动不了的"-a"选项】
- Sql语句:IF ELSE CASE WHEN WHILE CONTINUE BREAK
- Switch语句没有case的例子
- 详解Swift的switch...case语句中break关键字的用法
- switch-case语句在未加break时的执行顺序
- python语言没有switch-case语句
- switch开关语句 没有break是如何执行的
- 为什么switch case语句需要加入break
- 诺顿引起系统崩溃!民间详细解决方案
- ? 枚举 编程题#2:拨钟问题(Coursera 程序设计与算法 专项课程4;函数memcpy的用法,switch case break 语句!)
- Win系统没有崩溃前如何恢复安装
- 语句(switch语句及其内case , break)
- 7.1.3 switch语句中的case结尾是否必须加break(废话)
- switch-case-break语句
- switch-case语句里面有return了 ,break还起作用吗?该如何解决
- python中没有switch/case语句