【发布时间】:2009-10-19 04:20:14
【问题描述】:
假设我需要在最内层循环中发生某些事件时一次跳出三个或四个嵌套的 for 循环。 有什么巧妙的方法?
我所做的是像这样使用 标志:
int i, j, k;
int flag1 = 0;
int flag2 = 0;
for (i = 0; i < 100; i++) {
for (j = 0; j < 100; j++) {
for (k = 0; k < 100; k++) {
if (k == 50) {
flag1 = 1;
flag2 = 1;
break;
}
}
if (flag1 == 1)break;
}
if (flag2 == 1)break;
}
我认为这不是特别整洁。
你将如何完成同样的事情?(不使用跳转)
【问题讨论】:
-
什么语言? .
-
我的意思是 C,我写的问题...有没有语言更好地支持这个?
-
我喜欢 Environment.FailFast(string.Empty); .它将以一种很好且快速的方式退出循环,没有任何“额外”的东西...... :)
-
在 PHP 中 break 可以接受要退出的嵌套循环数:php.net/manual/en/control-structures.break.php。同样的原则也适用于继续:php.net/manual/en/control-structures.continue.php。