Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的开关盒计算_Javascript - Fatal编程技术网

JavaScript中的开关盒计算

JavaScript中的开关盒计算,javascript,Javascript,我在javascript中遇到了一个问题,我想知道是否可以执行类似的操作,或者这是一个错误: for (var i = 1; i <= nUnits.length; i++) { switch (true) { case i % fDivisor === 0 && i % bDivisor === 0: //Note the modulus nUnits[i].push("FB"); alert

我在javascript中遇到了一个问题,我想知道是否可以执行类似的操作,或者这是一个错误:

for (var i = 1; i <= nUnits.length; i++)
{
    switch (true)
    {
        case i % fDivisor === 0 && i % bDivisor === 0: //Note the modulus
            nUnits[i].push("FB");
            alert("FB");
            break;
        case i % fDivisor === 0:
            nUnits[i].push("F");
            alert("F");
            break;
        case i % bDivisor === 0:
            nUnits[i].push("B");
            alert("B");
            break;
        default:
            nUnits[i].push(i);
            alert(i);
            break;
    }
}
我想知道这是否是有效的语法


我理解国际单项体育联合会的声明有时可能更好,但这不是问题所在。提前感谢您的帮助。

我看到人们正在投票结束这个有效的问题,所以我将回答它,因为我使用它作为我自己的参考

另一个人发布了一个答案,说明本案中的这种语法是不正确的,是不允许的

在回答下面的一条评论中,一张海报提供了一个指向JSFIDLE的链接,证明了该语法是正确的。这可能不好,但这是允许的。然后,发布答案的人将其删除。同时删除评论和链接。我希望提供链接的人在问题结束前将其作为答案发布,我将删除此链接并接受他的回复

这回答了我的问题。这是:

在这种情况下(不是开关)是否允许这样的“计算”(不是逻辑操作)。(请注意,问题不是要辩论它是否好)。但是它的语法正确吗?它被允许吗


不管你喜欢与否(这不是一个辩论论坛)…这确实是允许的。

像这样使用
开关
基本上是在强奸语言。它完全否定了
switch
。我正在尝试学习开关用例的正确语法。我已经用if取得了成功。因此,同样的,关于语法是否被允许和正确,以及它看起来是否正常或实用。这就是为什么我选择一个简单的问题。我自己也在尝试,没有错误,也没有警报。它什么也不做。因此,问题就来了。如果你想学习
开关
的正确语法(和语义),就不要这样使用它。这样做没有什么可学的。学习
switch
,并举例说明如何使用它。@FrancisRodgers如果您想学习switch语句的语法,请按照预期的方式使用,而不是用一些老生常谈的方式。@FrancisRodgers我找不到好的链接,但如果内存可用,那就不好了,因为它基本上被用作美化的goto(我知道goto是有用的,但不是从这个意义上说的)。此外,他链接的问题也有答案(根据语言,它是有效的,但不是推荐的)。你知道怎么做吗?我试过了
案例(calc
但这似乎不起作用?
case (((i % fDivisor) === 0) && ((i % bDivisor) === 0)): //Note the modulus
    nUnits[i].push("FB");
    alert("FB");
    break;
case ((i % fDivisor) === 0):
    nUnits[i].push("F");
    alert("F");
    break;