我必须使用什么命令才能退出for循环,也可以从//code inside
直接跳转到//code after
//code before
for(var a in b)
{
switch(something)
{
case something:
{
//code inside
break;
}
}
}
//code after
答案 0 :(得分:21)
在需要退出时使用另一个变量标记:
var b = { firstName: 'Peter', lastName: 'Smith' };
var keepGoing = true;
for (var a in b) {
switch (true) {
case 1:
keepGoing = false;
break;
}
if (!keepGoing) break;
console.log('switch end');
}
console.log('for end');
答案 1 :(得分:18)
您可以使用label
。有标签声明并打破该标签。 outerLoop
是我在这里使用的标签。
//code before
outerLoop:
for (var a in b) {
switch (something) {
case 'case1':
//code inside
break outerLoop;
}
}
//code after
答案 2 :(得分:15)
不幸的是,Javascript没有允许break
通过多个级别。最简单的方法是通过创建匿名函数来利用return
语句的强大功能:
//code before
(function () {
for (var a in b) {
switch (something) {
case something:
{
//code inside
return;
}
}
}
}());
//code after
这是有效的,因为return
离开了函数,因此隐式地离开循环,直接转到code after
答案 3 :(得分:9)
这取决于你想要完成的事情......我通常做的一件事就是这样:
//code before
for(var a in b)
{
var breakFor = false;
switch(something)
{
case something:
{
//code inside
breakFor = true;
break;
}
}
if (breakFor)
break;
}
//code after
答案 4 :(得分:1)
你可以知道要打破哪个循环/开关。
function foo ()
{
dance:
for(var k = 0; k < 4; k++){
for(var m = 0; m < 4; m++){
if(m == 2){
break dance;
}
}
}
}
请参阅this answer。
答案 5 :(得分:0)
我总是发现使用条件语句是控制代码流的最简单方法之一,至少在概念上是这样。
var done = false;
//code before for loop
for(var a in b){
switch(switchParameter){
case firstCase:
//code inside
done = true;
break;
}
}
if(done)
break;
}
//code outside of for loop
答案 6 :(得分:0)
for(var i=0; i<b.length; i++) {
switch (something) {
case 'something1':
i=b.length;
}
}
当迭代变量i
到达循环的末尾时,它会中断。但是可以强制迭代变量到达循环的末尾。