c语言switch中break语句的作用
2012-09-12 05:44
225 查看
问题:
break在for循环、while循环等循环流程控制中起的作用是停止执行break后面的语句,跳出本次循环,并跳出该循环控制体;
在switch条件选择中,没有了循环控制,break又起什么作用呢?
解决办法:
1. switch语句的执行流程是:
首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,
若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇到break语句就退出switch语句,程序流程转向开关语句的下一个语句;
若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句,然后退出switch语句,程序流程转向开关语句的下一个语句。
在switch-case语句中,多个case可以共用一条执行语句,如:
case 常量表达式1:
case 常量表达式2:
case 常量表达式3:
语句;
break;
由此可以看出case语句的作用:
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。
因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;
而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才停止执行,退出switch语句。
因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。
2. 从上面的描述可以看出,switch条件选择语句中的break的作用跟循环控制语句中的作用基本相同:
都是不执行break之后的语句,并结束退出switch语句;
3. 与循环控制中存在continue语句不同的是,switch条件选择语句中没有continue语句;
问题解决。
break在for循环、while循环等循环流程控制中起的作用是停止执行break后面的语句,跳出本次循环,并跳出该循环控制体;
在switch条件选择中,没有了循环控制,break又起什么作用呢?
解决办法:
1. switch语句的执行流程是:
首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,
若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇到break语句就退出switch语句,程序流程转向开关语句的下一个语句;
若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句,然后退出switch语句,程序流程转向开关语句的下一个语句。
在switch-case语句中,多个case可以共用一条执行语句,如:
case 常量表达式1:
case 常量表达式2:
case 常量表达式3:
语句;
break;
由此可以看出case语句的作用:
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。
因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;
而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才停止执行,退出switch语句。
因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。
2. 从上面的描述可以看出,switch条件选择语句中的break的作用跟循环控制语句中的作用基本相同:
都是不执行break之后的语句,并结束退出switch语句;
3. 与循环控制中存在continue语句不同的是,switch条件选择语句中没有continue语句;
问题解决。
相关文章推荐
- c语言switch中break语句的作用
- c语言中的switch语句中的break和continue的作用
- 解析c语言switch中break语句的具体作用
- C语言之分支和跳转 switch和break、goto语句
- C语言之switch case语句 case 中没有break时会继续执行下一个case无论条件是否满足都会执行
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- C语言控制语句总结(if else for switch while break continue)
- C语言:break、continue、return在switch语句中的跳转关系
- Java switch开关语句的break,default作用
- C语言中break在switch-case中的作用
- C语言中switch case语句的嵌套
- C语言中switch case语句的实现
- C语言中的switch语句
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- switch中的break和语句执行顺序的问题
- C语言笔试题精选1---求两个数之间较大的数,不使用if、while、switch、for、?:/以及任何比较语句
- C语言编程入门——switch、break与continue
- 【C语言】空语句的作用(还需日后增加)
- C语言中switch语句的糟糕设计
- C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)