在for
这样的循环结构中,break;
“知道”何时处于缩进级别?
例如:
for (i = 0; i < 10; i++) {
for (s = 0; s <= i; s++) {
if (s == 7) break;
}
}
这break;
会阻止内部吗?
由于
答案 0 :(得分:3)
你还没有说过你正在使用什么语言,但我从来没有见过一种语言,除了打破内部循环(允许外部继续)之外,还有其他任何语言。不过,你真的应该提到你正在使用的语言! : - )
许多具有这种语法的语言都支持标签和定向中断,可用于打破外部循环。通常看起来像这样:
outer: for (i = 0; i < 10; i++) {
inner: for (s = 0; s <= i; s++) {
if (s == 7) break outer;
}
}
(inner
标签在这种情况下是可选的,因为我们没有将它用于任何事情,我只是为了完整性而将它包括在内。)
该示例将破坏内部和外部循环。它在Java,JavaScript和其他人中都有效;在C中你需要一个标签后循环和(颤抖)a goto
你可能会更好(可以说总是更好)只是在外循环检查中包含某种终止条件内循环集。
以下是JavaScript中的实例(我使用较小的数字使其更加明显):Without the directed break | With the directed break
另请注意,在这些语言中,缩进完全无关紧要。此代码 完全 与您的代码相同(只是显着不太可读):
for (i = 0; i < 10; i++) {
for (s = 0; s <= i; s++) {
if (s == 7) break;
}
}
这也是相同的(并且显着不太可读):
for (i = 0; i < 10; i++) {
for (s = 0; s <= i; s++) {
if (s == 7) break;
}
}
显然你永远不想这样做,但重点是缩进是针对人的,而不是编译器(使用这种语法的语言)。
答案 1 :(得分:2)
答案 2 :(得分:1)
缩进级别在使用赞誉的语言中并不重要。只有内环会被打破。
答案 3 :(得分:0)
它会停止内在的。
答案 4 :(得分:0)
只是内在的一个。中断将突破单个循环。您需要额外的逻辑来完全打破嵌套循环,否则如果嵌套循环封装在函数中,则可以使用return。
答案 5 :(得分:0)
只是内在的一个。有些语言可以选择哪种语言。