我试了一下:
for(i = 0; i < 5; i++){
for(j = i + 1; j < 5; j++){
break(2);
}
alert(1);
}
结果却得到:
SyntaxError:缺失;在声明中
那么,如何在JavaScript中打破嵌套循环呢?
我试了一下:
for(i = 0; i < 5; i++){
for(j = i + 1; j < 5; j++){
break(2);
}
alert(1);
}
结果却得到:
SyntaxError:缺失;在声明中
那么,如何在JavaScript中打破嵌套循环呢?
当前回答
不幸的是,你必须设置一个标志或使用标签(想想老式的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
其他回答
不幸的是,你必须设置一个标志或使用标签(想想老式的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
你应该能够打破一个标签,像这样:
function foo () {
dance:
for (var k = 0; k < 4; k++) {
for (var m = 0; m < 4; m++) {
if (m == 2) {
break dance;
}
}
}
}
封装一个自执行函数并返回
(function(){
for(i=0;i<5;i++){
for (j=0;j<3;j++){
//console.log(i+' '+j);
if (j == 2) return;
}
}
})()
返回“break”你嵌套的for循环。
function foo ()
{
//dance:
for(var k = 0; k < 4; k++){
for(var m = 0; m < 4; m++){
if(m == 2){
//break dance;
return;
}
}
}
}
foo();
看到亚伦的。否则: J =5;i=5而不是break。