我在学习编程的时候尝试了一些简单的活动,比如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;
}
}
}
型
它确实有效,但它真的有效吗?我不认为这将适用于每一个问题。我正在考虑只使用后藤,但我想先尝试其他方法
4条答案
按热度按时间2izufjch1#
是的,这是正确的方法。你不需要
1 &&
。我还建议使用变量名,显示它们的作用。如果是true
,loop_break
将表示你想中断循环字符串
如果您有非常复杂的中断循环逻辑,也可以考虑
goto
型
hec6srdp2#
或者简单地说:
字符串
这是最简单、最有效、最易读的方法。
13z8s7eq3#
尽量写得简单易懂:
字符串
没有必要在循环体中保留错误处理。或者,如果错误不是真的严重到足以停止循环,那么它会做什么,更具体地说?
也不需要用后藤/continue来变出所有意大利面条式的编程。
tktrz96b4#
“* 但我想先试试其他方法 *”
下面是一个替代方法。*flag变量 *
trouble
的作用域仅限于循环本身。而且,continue
消除了对额外缩进级别的需要。这是另一个非常可读的方法。字符串
如果你真的很聪明,你可能会看到如何改变
!trouble
到trouble < RETRIES
将允许/*error*/
执行某种 * 重置 *,以再次尝试满足/*condition*/
.