JavaScript中的开关盒计算
我在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
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;