c语言 switch语句执行顺序

我的理解是执行switch中的case后语句是自上而下执行,每句都写了break,上至下遇到第一个符合条件的语句表执行并跳出switch。
想问的是有没有控制符或语句之类的东西要求它从下至上执行,而不是默认顺序(如果我之前的理解有误也请指出)? 谢谢~

  1、switch的一般形式

switch(表达式)
{
case å¸¸é‡è¡¨è¾¾å¼1: è¯­å¥1; break;
case å¸¸é‡è¡¨è¾¾å¼2 : è¯­å¥2; break;
case ...................................
default:
      é»˜è®¤è¯­å¥
}

switch语句块之后的语句;;

  2、执行顺序

  第一步:计算switch后面的条件表达式的值。

  第二步:将表达式的值,分别与case语句中的常量表达式进行比较。如果相等,则执行对应的case语句,执行完语句后, 即会跳出switch语句块。

  第三步:如果所有的case常量表达式值都与switch条件表达式的值不一致,则执行default下的默认语句。

  注意:default语句可以省略,如果省略,则程序执行swtich语句块后面的语句。

  

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-26
是的,如果没有break语句, switch将从第一个匹配的条件运行,直到遇到break,或者整个switch模块的尾部。如果switch里面一个case也没有,就不会执行。
如下:
int n = 10;
switch (n ) {
printf("%d", n); //这一句将不会执行。
}

而下面:
int n = 10;
switch (n ) {
case 11:
printf("%d ", n+1);
case 10:
printf("%d ", n);
case 9:
printf("%d ", n-1);
case 8:
printf("%d ", n-2);
}
将会输出:
10 9 8
第2个回答  2011-11-26
switch中的case后语句是自上而下执行,遇到break才会跳出switch。
C程序都是自上而下的 不可能从下至上 就跟程序不会先return 才定义是一个样子的本回答被提问者采纳
第3个回答  2011-11-26
switch(a)如果case后的字符和a相同,则从此case开始自上而下做,直至break或结束,期间不再判断case(并不是每句都要break)。所以楼主的说法是错的
第4个回答  2011-11-26
好像只能从上到下执行,在执行switch语句时 根据switch后面的值找到匹配的额入口标号,就从此标号开始执行下去,不再进行判断

c语言switch语句执行顺序
1、计算switch后面的条件表达式的值;2、将表达式的值,分别与case语句中的常量表达式进行比较。如果相等,则执行对应的case语句,执行完语句后, 即会跳出switch语句;3、如果所有的case常量表达式值都与switch条件表达式的值不一致,则执行default下的默认语句。

switch选择结构的语法和执行顺序是什么
当常量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句。2. C#的switch语法和执行顺序 switch (n){ case 1: ...

C语言为什么答案为31,为什么i为2会执行,他不由case 0控制吗?
C语言中的switch(i)语句,是按照后面几个case语句的顺序,从前往后依次查找对应的i值,并从查到的那一句开始执行后面所有的语句(包括case),除非碰到一个break命令,后面的语句就不会被执行了。你发的程序中,没有一个break,所以会全部执行。具体是:循环前a的值为0,循环是从i=1到4执行循环体(i...

C语言中Switch语句执行过程是怎样的
先执行Switch里的表达式,Case就是结果,如果 Switch里的 结果等于常量表达式1,就执行语句1,如果结果等于 常量表达式 2,就执行语句2。以此类推

C语言中switch的使用方法是什么?
1没有break语句,因此继续执行case 2,y=y*2=1*2=2。3、由于第一个case 1分支也没有break语句,继续执行case 2:x++,y++,执行后的结果是:x=3,y=3。4、由于case 2分支也没有break语句,因此执行case 3:x*=2,y*=2,执行后的结果是:x=6,y=6。5、跳出switch语句后打印,输出x...

C语言中switch怎么用?
在C语言中使用switch语句,遵循以下模板:switch (表达式或属性){ case 值1 : 语句1 break;case 值2 : 语句2 break;...default : 值n break;} 从表达式或属性值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号...

c语言switch的用法 c语言switch的用法介绍
1、c语言switch的用法是逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。2、如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

C语言 switch(0)后面的语句执行吗?
switch语句并不作判断,只是拿表达式的值去与case匹配,匹配成功,则顺序执行,直到break语句而跳出switch,全部匹配失败则执行default中的语句。switch(0)会去匹配 case 0的那个语句块。

C语言中switch语句的用法
先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

c语言switch语句格式
switch(表达式){ case 整型数值1: 语句 1;case 整型数值2: 语句 2;...case 整型数值n: 语句 n;default: 语句 n+1;} 它的执行过程是:1) 首先计算“表达式”的值,假设为 m。2) 从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1...

相似回答