有人可以花时间尝试解释此代码如何工作,不理解中断部分以及结尾的答案是0。
int a=3, x;
switch(a==5){
case 0: x=0;break;
case 1: x=1;break;
case 3: x=3;break;
case 5: x=5;break;
default: x=7;
}
printf("%d",x);
没有break
,执行将从每种情况继续到下一个(失败),并且每个路径最终都将以default
结尾,并将7
分配给x
。
还请注意,您有一个错误:switch(a==5)
应该为switch(a)
。
a==5
返回true或false值(0或1)。在此示例中,大多数情况不会触发。将switch(a==5)
更改为switch(a)
这意味着在您的示例中,案例0被触发,因为a==5
结果为false(0)。
由于a==5
为假,因为a
为3,所以它返回0。这就是case 0:
被触发的原因。
[break;
导致代码停止,没有它,代码将继续直到default:
。