switch语句在C中是如何工作的?
谁能解释一下为什么当x=0时,这个代码的输出是4(我想如果x是0,这适用于switch语句在C中是如何工作的?,c,switch-statement,C,Switch Statement,谁能解释一下为什么当x=0时,这个代码的输出是4(我想如果x是0,这适用于情况0:和y假设为3,在这种情况下我错了) #include <stdio.h> int main() { int x = 0; int y; switch (x) { case 0: y = 3; case 1: y = 4; break; default: y = 5; br
情况0:
和y假设为3,在这种情况下我错了)
#include <stdio.h>
int main()
{
int x = 0;
int y;
switch (x) {
case 0:
y = 3;
case 1:
y = 4;
break;
default:
y = 5;
break;
}
printf("%d", y);
getchar();
return 0;
}
#包括
int main()
{
int x=0;
int-y;
开关(x){
案例0:
y=3;
案例1:
y=4;
打破
违约:
y=5;
打破
}
printf(“%d”,y);
getchar();
返回0;
}
您在第一个案例陈述中注释掉了您的break;
陈述
所以写下这个:
(否则,当x为0或1时,y被分配给3,然后分配给4)
switch
语句转到下一个break;
如果一个case
语句缺少一个!如果您忘记了所有这些:D则它在switch
语句的末尾停止,并且所有行都被执行!case语句被设计为进入行中的下一个case,除非它们将执行从整个开关中拉出的break语句。在本例中,您推荐了“案例0”的break语句,因此执行向下滑动到“案例1”,将y重新分配到4。因为break
被注释掉了:
switch (x) {
case 0:
y = 3;
//break; <---- commented out.
开关(x){
案例0:
y=3;
//break;在开关(x)
操作之后,执行首先跳到对应的案例N
语句。然后在该语句之后执行代码,直到a)找到括号({}
定义的开关(x)
边界的末尾或者b)它在开关内找到一个break
语句,结束该开关
在你的例子中,它经历了y=3
到case1
,再到y=4
,然后在中断处结束
嗯,查看switch()的最佳方式是作为“计算的转到”,应该有一个“你是一个C程序员-什么时候?”“上面写着‘由于你编写的switch语句中的一个错误而导致脸朝上’。是的,但我需要知道在没有‘break’的情况下这是如何工作的;@Impalerz如果没有break语句,它会一直持续到下一个语句!
switch (x) {
case 0:
y = 3;
//break; <---- commented out.