这是我用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;
}发布于 2015-11-21 14:33:36
我使用了以下技术来实现这一点:
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
}发布于 2015-11-21 15:58:55
在javascript中有没有可能在switch语句中使用"goto“?
不,没有可能在switch语句中使用"goto“,或者其他任何地方,因为JavaScript没有这样的语句。
为了解决你的问题,按照评论中的建议,组织你的案例(将3移到2上),这样你就可以使用fall-through:
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;
}在这种情况下,一定要注释掉失败的代码,这样看你的代码的人就不会认为这是一个bug。您可能还需要添加一个提示,以便您的linter不会抱怨。
或者,只需将2和3的常见逻辑放在一个小函数中:
function someLogicFor2Or3() { ... }
case 2:
someLogicFor2OrMaybe3();
break;
case 3:
...
if (..) { }
else someLogicFor2OrMaybe3();
break;https://stackoverflow.com/questions/33839705
复制相似问题