繁体   English   中英

为什么我们在JavaScript循环中使用中断?

[英]Why do we use breaks in JavaScript loops?

我知道“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 <= 3那样使我们的条件。 有人可以用一些实际的例子说清楚吗?

一个简单的例子是循环遍历数组中的对象,寻找满足某个条件的对象。 当您找到该对象时,您无需检查其余对象,因此请使用break

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循环语句而不是正文。 这可能很快导致无法读取的代码。

breakcontinue 更具可读性

例如,当您在10个项目的数组中搜索某些内容时,您希望从0开始循环.9。但是,一旦找到结果,就无法进一步搜索,因此您可以break并跳出循环。

在您的示例中,它是一个糟糕的循环条件。

但是在处理其他对象时会变得非常复杂。 看看我的例子。

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 />");
}

我很确定这只是一段代码,向您展示如何break工作。 实际上你不会写那样的东西。

但是, break有它的优点。 您可以随时退出循环(不仅在循环条件如此说明时)

要添加到其他人所说的内容中,有时您只需要在某个事件被触发时中断。 代码与此类似:

while(true)
{
//run application
if(event)

   break;


}
//end application

在许多应用程序,特别是游戏的背景下有意义。

此外,有时您可能需要检查循环中间的条件而不是开始时的条件,因此使用break不仅会使代码更具可读性,而且在某些情况下这是必不可少的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM