继续ALLWAYS在JS中切换非法但是中断工作正常

Owy*_*wyn 6 javascript windows loops google-chrome switch-statement

switch ("B")
{
case "A":
    break;
case "B":
    continue;
case "C":
    break;
default:
    break;
}
Run Code Online (Sandbox Code Playgroud)

在C++中简单正确的代码,但是当在javascript中使用稳定的chrome时,它只会抛出一个错误"非法继续声明",看起来像在javascript中切换时不允许继续语句...听说返回但它只是返回并且不会继续. ..那么有没有办法继续在js切换?

Lig*_*ica 11

continue绝对与switches 无关,不是在Javascript中而是在C++中:

int main()
{
    int x = 5, y = 0;
    switch (x) {
        case 1:
            continue;
        case 2:
            break;
        default:
            y = 4;
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:不在循环内的continue语句

如果你想打破这种情况,请使用break; 否则,允许案件通过:

switch ("B")
{
    case "A":
        break;
    case "B":
    case "C":
        break;
    default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

如果你正在寻找跳转到下一个案例的快捷方式,那么,不,你不能这样做.

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;
}
Run Code Online (Sandbox Code Playgroud)

  • 应该注意的是,只要您的“switch”在循环内,就可以在“switch”中使用“continue”。在这种情况下,`continue` 实际上会`break``switch`。 (2认同)

Esa*_*ija 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

否则你应该考虑以其他方式表达你想要的东西.

即使你可以把它拉下来,这将是一个巨大的WTF.只要使用if else if.