麻烦理解中断

问题描述 投票:-1回答:3

有人可以花时间尝试解释此代码如何工作,不理解中断部分以及结尾的答案是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);
c++ switch-statement
3个回答
1
投票

没有break,执行将从每种情况继续到下一个(失败),并且每个路径最终都将以default结尾,并将7分配给x

还请注意,您有一个错误:switch(a==5)应该为switch(a)


1
投票

a==5返回true或false值(0或1)。在此示例中,大多数情况不会触发。将switch(a==5)更改为switch(a)这意味着在您的示例中,案例0被触发,因为a==5结果为false(0)。


1
投票

由于a==5为假,因为a为3,所以它返回0。这就是case 0:被触发的原因。

[break;导致代码停止,没有它,代码将继续直到default:

© www.soinside.com 2019 - 2024. All rights reserved.