我在学习编程时尝试了有关 if 语句、开关和循环的简单活动,但遇到了这个问题。
while (1) {
if (/*condition*/) {
//error
} else {
switch (num) {
case 1:
break;
default:
//error
}
}
}
显然
break;
语句仅终止 switch 块,但不终止循环。
我尝试过做
int loop_break = 1;
while ( 1 && loop_break == 1) {
if (/*condition*/) {
//error
} else {
switch (num) {
case 1:
loop_break = 0;
break;
}
}
}
它确实有效,但它真的有效吗?我不认为这适用于所有问题。我想只使用 goto 但我想先尝试其他方法
是的,这是正确的方法。您不需要
1 &&
。我还建议使用变量名称来显示它们的作用。如果是 loop_break
,则
true
会表明您想要打破循环
while (stayInLoop) {
if (/*condition*/) {
//error
} else {
switch (num) {
case 1:
stayInLoop = 0;
break;
}
}
}
如果你有非常复杂的break循环逻辑,你也可以考虑
goto
while (1) {
if (/*condition*/) {
//error
} else {
switch (num) {
case 1:
goto outsideTheLoop;
}
}
}
outsideTheLoop: