我试了一下:

for(i = 0; i < 5; i++){
    for(j = i + 1; j < 5; j++){
        break(2);
    }
    alert(1);
}

结果却得到:

SyntaxError:缺失;在声明中

那么,如何在JavaScript中打破嵌套循环呢?


当前回答

看到亚伦的。否则: J =5;i=5而不是break。

其他回答

在多级循环中使用function -这是一个好方法:

function find_dup () {
    for (;;) {
        for(;;) {
            if (done) return;
        }
    }
}

不幸的是,你必须设置一个标志或使用标签(想想老式的goto语句)

var breakout = false;

for(i=0;i<5;i++)
{
    for(j=i+1;j<5;j++)
    {
        breakout = true;
        break;
    }
    if (breakout) break;
    alert(1)
};

标签方法如下所示:

end_loops:
for(i=0;i<5;i++)
{
    for(j=i+1;j<5;j++)
    {
        break end_loops;
    }
    alert(1)
};

编辑:标签放置错误。

还看到:

http://www.devguru.com/Technologies/ecmascript/quickref/break.html http://www.daaq.net/old/javascript/index.php?page=js+exiting+loops&parent=js+statements

loop1:
    for (var i in set1) {
loop2:
        for (var j in set2) {
loop3:
            for (var k in set3) {
                break loop2;  // breaks out of loop3 and loop2
            }
        }
    }

在Javascript中打破嵌套循环的最佳方法?

请在发表问题前搜索。这个链接是我在本页左侧看到的第一个相关问题!

Break不带参数。有两种变通方法:

将它们包装在一个函数中并调用return 在内部循环中设置一个标志,如果设置了标志,则在循环结束后再次中断。

你需要命名你的外部循环并打破这个循环,而不是像这样打破你的内部循环。

outer_loop: 
for(i=0;i<5;i++) {
    for(j=i+1;j<5;j++) {
        break outer_loop;
    }
    alert(1);
}