switch ("B")
{
case "A":
break;
case "B":
continue;
case "C":
break;
default:
break;
}
C ++中的简单正确代码,但是当在javascript中使用稳定的chrome时,它只会抛出错误“非法继续语句”,看起来像在javascript中切换时不允许继续语句...听说返回但它只是返回并且不继续......那么有没有办法继续在js中切换?
答案 0 :(得分:11)
continue
与switch
es完全无关,不在Javascript and not in C++中:
int main()
{
int x = 5, y = 0;
switch (x) {
case 1:
continue;
case 2:
break;
default:
y = 4;
}
}
错误:不在循环中继续语句
如果您希望摆脱此案,请使用break
;否则,允许案件通过:
switch ("B")
{
case "A":
break;
case "B":
case "C":
break;
default:
break;
}
如果您正在寻找快捷方式 跳到下一个案例,那么,不,你不能这样做。
switch ("B")
{
case "A":
break;
case "B":
if (something) {
continue; // nope, sorry, can't do this; use an else
}
// lots of code
case "C":
break;
default:
break;
}
答案 1 :(得分:9)
我相信你可以通过使用标记的无限循环模仿你想要的东西:
var a = "B";
loop: while( true ) {
switch (a)
{
case "A":
break loop;
case "B":
a = "C";
continue loop;
case "C":
break loop;
default:
break loop;
}
}
否则你应该考虑以其他方式表达你想要的东西。
即使你可以取消它,这将是一个巨大的WTF。只要使用if else。
答案 2 :(得分:3)
我认为你的意思是:
switch ("B")
{
case "A":
break;
case "B":
case "C":
break;
default:
break;
}
不需要continue
。当B来的时候,它会转移到C.
答案 3 :(得分:0)
没有break
语句的switch case将“通过”(因为它被调用)到下一个。省略break
将使代码的行为与您所说的一样,因为它是switch语句的默认/隐式行为。
continue
语句的使用是为循环保留的,它的作用实际上与你想要的略有不同;它将打破循环的当前迭代并继续下一个循环,重新评估循环条件。
答案 4 :(得分:0)
实际上,您可以在循环内切换中使用它,在这种情况下,break / continue是一个有用的组合
看看这个例子
var array = [1, 2, "I am a string", function(){}, {}, 1,2,3]
for(let i in array){
switch(typeof array[i]) {
case "number":
array[i] += " I was a number"
break; // break from the switch but go on in the for-loop
// ie. go to *put esclamation mark*
case "function":
array[i] = "function"
// fall through
default:
array[i] = `this is a ${JSON.stringify(array[i])} object`
break; // also here goes to *put esclamation mark*
case "string":
continue; // continue with the next iteration of the loop
// ie. do not put exclamation mark in this case
}
array[i] += "!" // *put esclamation mark*
}
/*
array will become
[ "1 I was a number!", "2 I was a number!", "I am a string", "this is a \"function\" object!", "this is a {} object!", "1 I was a number!", "2 I was a number!", "3 I was a number!" ]
*/
答案 5 :(得分:-1)
继续可能只涉及循环。 它不能在switch语句中使用。 无论如何,你对它有什么期望?