关于C语言switch语句的break问题

main()
{
int fs;
scanf("%d",&fs);
switch(fs)
{
case 0 :printf("e");
case 1 :printf("e");break;
case 2 :printf("e");break;
case 3 :printf("e");break;
case 4 :printf("e");break;
case 5 :printf("e");break;
case 6 :printf("d");break;
case 7 :printf("d");break;
case 8 :printf("a");break;
case 9 :printf("aa");break;
case 10 :printf("s");break;
default:printf("cuo");

}
getch();
}
关于另类思考;上面把第一个的break去掉后为什么在输入0的时候会出现个ee?怎么会是两个e呢?详细说明下为什么会出现两个e
还是没有理解我的意思!输入0的时候会执行case0后的e,。但0并不等于1呀,怎么还会执行case1

c语言的switch语句是穿透的= = 也就是说当程序判断某个case的条件为真后,它将在执行该case所带的的语句块之后不再对后面的case的条件进行判断而直接执行。所以将第一个break去掉并输入0之后程序判断第一个case的条件为真,输出e,再继续执行第二个case后的语句,又输出e,之后遇到break语句退出switch结构。所以输出是两个e。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-06
case语句这样执行的:
先进入swtich,匹配找到第一个符合条件的case语句,执行完这条case语句后,继续往后执行,如果没有break,它就会继续完后执行,直到遇到break或者switch结束。
不信你试试,把所有的break都去掉,输入0,你会看到所有的都输出了!
所以在写case语句的时候要记住,每条case语句之后一定要加上break,否则后面的全部都会被执行。
第2个回答  2011-08-06
它执行了
case 0 :printf("e");
case 1 :printf("e");break;
这两句,所以会有两个e.
当程序从case 0:进入的时候,要遇到break才会跳出switch
第3个回答  2011-08-06
break;其作用大多情况下是终止上一层的循环
第一个case 0 打印一个e都没有跳出,
继续执行case 1 又打印一个e,
break就直接跳出。
所以打印ee
第4个回答  2011-08-06
如果一个case后面没有break,那么程序将顺次执行它下面的case,直到遇到break或switch语句的右大括号“}”为止。这样做提供了为几种情况设置共同的处理代码的便利。
关于C语言switch语句的break问题
c语言的switch语句是穿透的= = 也就是说当程序判断某个case的条件为真后,它将在执行该case所带的的语句块之后不再对后面的case的条件进行判断而直接执行。所以将第一个break去掉并输入0之后程序判断第一个case的条件为真,输出e,再继续执行第二个case后的语句,又输出e,之后遇到break语句退出switch...

c语言中switch语句里的break加与不加有什么关系
c语言switch语句中,如果有加break则运行到时会跳出switch语句,执行switch语句之后的语句;如果没加break则会去运行switch中后续的语句,比如运行到后续别的case中。c语言中,switch(开关语句)常和case、break、default一起使用。当常量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句...

C语言中switch语句的用法
C语言中的switch语句主要用于根据变量的值执行不同的代码块。为了确保每个case语句只执行一次,必须在每个case后加上break语句。break语句的作用是使程序跳出switch结构,从而防止执行后续的case语句。如果不加break,程序会继续执行接下来的case语句,直到遇到break或switch结构结束。例如,考虑以下代码片段:int...

c语言中,switch语句,里面如果碰到break,跳出循环之后,会继续执行这个swi...
switch不是循环,在switch中碰到break会跳过switch体中剩下的语句,结束switch

C语言程序修改题。switch语句的每句case语句后为什么不需要加break?求...
在C语言中,return语句的作用是返回值,也可以视为一个函数调用的结束。一旦执行到return语句,系统会认为这个函数已经执行完毕,直接返回结果,不再执行该函数后面的代码。在switch结构中,每个case语句后面通常会跟着一个break语句,以防止程序继续执行后续的case分支。然而,在某些情况下,case的执行语句本身...

C语言break语句
C语言中的break语句主要用于立即终止其所在的最内层循环或switch语句。以下是关于break语句的详细解释:在循环结构中的作用:当break语句位于循环内部时,它会立即终止该循环的执行,并跳出循环体,继续执行循环之后的语句。示例:在for循环中,如果某个条件满足,则执行break语句,循环会立即结束。在switch结构...

C语言switch语句,求大神解释一下,谢谢
在C语言中,switch语句用于根据变量的值执行不同的代码块。例如:switch(k) { case 1:case 4:case 7:s++;break;\/\/当k的值为1,4,7时,执行s++,跳出switch case 2:case 3:case 6:break;\/\/当k的值为2,3,6时,跳出switch case 0:case 5:s+=2;break;\/\/当k的值为0,5时,执行s+=...

关于c语言中的break用法
在C语言中,break语句是编程中的关键元素,主要应用于循环和开关结构。当你在switch语句中使用break时,它能促使程序立即跳出当前的switch块,继续执行switch后的代码。如果没有break,switch会形成一个无限循环,无法退出。关于switch的break用法,已经在之前的例子中详细讲解,这里不再赘述。另一方面,break在...

C语言中 switch语句中break 和default什么作用,没有这两个会怎么样...
default是处理异常的比如你的switch里面只有 1 2 3 4 其他的如果加了default就会在这里处理比如提示个参数不正确啥的而这个break就很重要了 很多C语言题里都有考到比如int a=0;switch(num){case 1:a++;case 2:a++;case 3:a++;default:printf("a=%d\\n",a);}没有break的话, 如果num是1 ...

请问for循环中的switch语句中case后用break还是continue??区别是什...
在C语言中,存在四种循环结构:while,do-while,for和goto。通常情况下,goto语句因其可能导致代码难以理解而较少使用。至于break语句,它只能在循环或switch结构中使用。它不能用于任何其他类型的语句,试图在其他语句中使用它会导致编译错误。因此,对于for循环中的switch语句,选择使用break还是continue取决...

相似回答