这是我在JS中的示例程序。我必须在switch语句中迭代或循环。所以我使用了goto
,但它没有用。
是否有其他选项可以循环播放或我的语法错误?
var input = 1;
switch (input)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
if (..) { }
else
{
goto case 2;
}
break;
default:
alert("No Return");
break;
}
答案 0 :(得分:1)
我使用以下技术来做到这一点:
var input = 1;
while (1) {
switch (input) {
case 1:
...
break; // switch
case 2:
...
break; // switch
case 3:
...
if (..) { }
else {
input = 2; // goto case 2;
continue; // while
}
break; // switch
default:
alert ("No Return");
break; // switch
}
break; // while
}
答案 1 :(得分:1)
是否有可能在javascript中的switch语句中使用“goto”?
不,没有可能在switch语句中或其他任何地方使用“goto”,因为JavaScript没有这样的声明。
要按照评论中的建议解决您的问题,请整理您的案例(移动3以上2),以便您可以使用堕落:
var input = 1;
switch (input)
{
case 1:
...
break;
case 3:
...
if (..) { ...; break; }
// fall through to case 2
case 2:
...
break;
default:
alert("No Return");
break;
}
在这种情况下,请务必对漏洞进行评论,以便查看代码的人不会认为这是一个错误。您可能还需要添加一个提示,以便您的linter不会抱怨。
或者,只需将逻辑公共2和3放在一个小函数中:
function someLogicFor2Or3() { ... }
case 2:
someLogicFor2OrMaybe3();
break;
case 3:
...
if (..) { }
else someLogicFor2OrMaybe3();
break;