繁体   English   中英

无法理解break

[英]Trouble understanding break

有人可以花点时间解释一下这段代码是如何工作的,不理解中断部分以及最后的答案是 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返回真或假值(0 或 1)。 在这个例子中,大部分情况不会被触发。 switch(a==5)更改为switch(a)

这意味着在您的示例中,情况 0 被触发,因为a==5导致 false (0)。

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

break; 导致代码停止,如果没有它,代码将继续运行直到default: .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM