搜索
首页 电脑/网络 程序设计 C/C++

C语言 switch 与break的运用

  #include "stdio。h"void main(){ int a; scanf("%d",&a); switch (a) { case 1: printf("A"); case 2: printf("B"); case 3: printf("C"); case 4: printf("D"); default: printf("e\n"); }}这里没有用到break。
  输入1,得到“ABCDe"输入2,得到”BCDe"输入3,得到“CDe"问:1,case如果是条件式子,为什么输入"2"的时候,与"3","4"不符,也会输出"CD"?2,如果不是条件式子,为什么输入"2"的时候,"A"又没能输出?本人新手,麻烦高手说的简单些。
  谢谢了。。

全部回答

2010-05-10

0 0
    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语句才停止执行,退出break语句。
  因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。   。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
程序设计
C/C++
数据库
VB
JAVA相关
C#/.NET
VC++
汇编语言
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报