[英]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.