c语言开关语句

switch语句下面的case后面的序号是不是数字由小到大执行。就像
case2:
case1:
case0:是不是先执行case0还是由上往下执行。
还有default是不是不管放哪都是最后执行。

第二个问题问得好!
第一个个问题是这样的,switch中有值和case后面的值相等的时候,就执行case那行语句,switch都是从上往下判断的,C语言中的语句执行流程就是从下往上(别弄糊涂了),所以switch 执行也是一样的。不是先执行case0,而是先判断switch中的值是否为 2 -> 1 -> 0 从上往下依次判断下来。如果switch里的值为0 的话,就执行case0,好好想下!

第二个问题,说实话我以前没有把default放到case中间编译过(也不知道编译器是否报错),呵呵,虽然这种是无用功,但是对于了解编译还是有帮助的,反正结果应该是这样,执行到default后,下面的case都不会执行。

“default是不是不管放哪都是最后执行”,不是这样的,不管default放到哪儿,顺序由上往下执行到default的时候,它就会执行,尽管你后面还有case语句等等,都忽略了!

呵呵,说得有点乱,我看你在线,你再问我吧!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-16
不是,先遇到哪个case先判断。例如
switch (a)
{
case 2: break;
case 1: break;
case 0: break;
default:
}
最首先遇到2,会比较a是否等于2,如果是执行一些操作。
所以通常会把最常见的case放在最上面以提高效率。
default是认为默认永远匹配的,你放在最上面它也执行,就没意义了,都是放在最下面处理其他一般默认情况的。
若像lz那样都没有break的,会所有的case都进行判断,符合条件都会执行
第2个回答  2011-07-16
这由数字的大小什么没有关系,它是满足那个case就执行那个case。
例如
a = 2;
switch(a)
{
}
那么就先执行case2.
如果a=0;
那么就先执行case0.
default是所有条件均不满足的情况下才执行,例如a=3
就会执行。
第3个回答  2019-07-09
第二个问题问得好!
第一个个问题是这样的,switch中有值和case后面的值相等的时候,就执行case那行语句,switch都是从上往下判断的,c语言中的语句执行流程就是从下往上(别弄糊涂了),所以switch
执行也是一样的。不是先执行case0,而是先判断switch中的值是否为
2
->
1
->
0
从上往下依次判断下来。如果switch里的值为0
的话,就执行case0,好好想下!
第二个问题,说实话我以前没有把default放到case中间编译过(也不知道编译器是否报错),呵呵,虽然这种是无用功,但是对于了解编译还是有帮助的,反正结果应该是这样,执行到default后,下面的case都不会执行。
“default是不是不管放哪都是最后执行”,不是这样的,不管default放到哪儿,顺序由上往下执行到default的时候,它就会执行,尽管你后面还有case语句等等,都忽略了!
呵呵,说得有点乱,我看你在线,你再问我吧!
第4个回答  推荐于2017-09-29
C语言的开关语句即switch语句,一般格式如下:

switch( 条件 )
{
case 值:
break;
default:
}
相似回答