2011-09-05 86 views
2

我知道“break”用于在满足某个特定条件之前停止一个循环,但我真的很困惑,为什么当我们有选择让我们的标准更好的时候使用break。例如看这一段代码:为什么我们在JavaScript循环中使用中断?

var i = 0; 
for (i = 0; i <= 10; i++) { 
    if (i == 3) { 
     break; 
    } 
    document.write("The number is " + i); 
    document.write("<br />"); 
} 

我知道它很清楚,这break命令将终止循环的变量达到3的值,但我的问题是,为什么我们使用断点,而不是使我们的像我< = 3。 有人可以用一些实际的例子说清楚吗?

+0

好点,好奇地看到一个很好的应用程序中断(并继续),导致我看到迄今为止的大部分似乎导致晦涩难懂的代码 – Luis

+2

我不知道为什么你在这种情况下使用中断 – Tsar

+0

你当你不使用常量时使用break。如果你循环一个对象数组,并检查每个对象中的一个值为3,那么你真的不知道它会在我== 3时,对吗?然而,在你的例子中,break的使用是愚蠢的,是的。 – Emil

回答

6

一个简单的例子是在要通过对象在阵列中循环,寻找一个满足一定条件。当你找到那个物体时,你不需要检查其他物体,所以使用break

+0

这让我明白更好。 – 0x499602D2

2

例如,当您搜索10个项目的数组中的东西时,您希望从0 ... 9开始循环。但是,只要找到结果,就没有用于进一步搜索的情况,因此您可以break并跳出循环。

1

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

然而,break有它的优势。你可以在任何你想要的那一刻退出循环(不仅在循环的条件是这么说的)

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

是的,你可以有更好的条件,但该装置循环语句在你把逻辑而不是身体。这可能会很快导致无法读取的代码。

breakcontinue更具可读性

+0

更具可读性?你确定吗?不适合我。 – Luis

+0

@Luis取决于'someCondition'是什么。取决于你强制进入循环条件的逻辑和骇客。取决于你是多么想诱惑优化,而不是可读性 – Raynos

0

要添加什么其他人说,有时你需要在某个事件被触发到只有突破。与此类似的代码:

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

    break; 


} 
//end application 

在许多应用程序,尤其是游戏的上下文中是有意义的。

此外,有时你可能需要在循环的中间,而不是在它的开始检查的条件,因此,使用破不只是让代码更易读,它在某些情况下是必不可少的。

相关问题