我知道“break”用于在满足特定条件之前停止循环但我真的很困惑为什么在我们可以选择使我们的标准更好时使用break。例如,看看这段代码:
var i = 0;
for (i = 0; i <= 10; i++) {
if (i == 3) {
break;
}
document.write("The number is " + i);
document.write("<br />");
}
我非常清楚这个break命令将终止循环,因为变量的值达到3但我的问题是为什么我们使用break而不是像i&lt; = 3那样使我们的条件。 有人可以用一些实际的例子说清楚吗?
答案 0 :(得分:6)
一个简单的例子就是循环遍历数组中的对象,寻找满足某个条件的对象。当您找到该对象时,您无需检查其余对象,因此请使用break
。
答案 1 :(得分:3)
for (var i = 0; i < arr.length; i++) {
var e = arr[i];
if (someCondition(e)) {
break;
}
}
// use e
vs
for (var i = 0; !someCondition(arr[i]); i++);
var e = arr[i];
// use e
是的,你可以有一个更好的条件,但这意味着你的推送逻辑在for循环语句而不是正文。这很快就会导致无法读取的代码。
break
和continue
更具可读性
答案 2 :(得分:2)
例如,当您在10个项目的数组中搜索某些内容时,您希望从0开始循环.9。但是,只要找到结果,就无法进一步搜索,因此您可以{{ 1}}并跳出循环。
答案 3 :(得分:2)
在您的示例中,它是一个错误的循环条件。
然而,在处理其他对象时会变得非常复杂。看看我的例子。
var i = 0;
var myArrayOfObjects = ....
for (i = 0; i <= 10; i++) {
if (myArrayOfObject[i].someProperty == 3) {
break;
}
document.write("The number is " + i);
document.write("<br />");
}
答案 4 :(得分:1)
我很确定这只是一段代码,向您展示break
的工作原理。实际上你不会写那样的东西。
然而,break
有它的优点。您可以随时退出循环(不仅在循环条件如此时)
答案 5 :(得分:0)
要添加其他人所说的内容,有时您只需要在某个事件被触发时才能中断。代码类似于:
while(true)
{
//run application
if(event)
break;
}
//end application
在许多应用程序,特别是游戏的背景下是有意义的。
此外,有时您可能需要检查循环中间的条件而不是开始时的条件,因此使用break不仅会使代码更具可读性,而且在某些情况下这是必不可少的。