javascript中的switch在满足所有情况条件时是如何工作的


switch (true) {
case (angle<20):
console.log("case1")
break;
case (angle<70):
console.log("case2")
break;
case (angle<110):
console.log("case3")
break;
case (angle<160):
console.log("case4")
break;
... and so on until 360
}

上面给出的代码运行良好。我只是好奇它是如何绘制出角度15落在情况1上的。而15满足所有情况条件

在谷歌上找不到任何线索。。所以我在这里问另一个话题以前也提过。但我还是不太明白这里有一些线索

switch语句为它匹配的第一个case执行块(根据case语句从上到下列出的顺序(。

如果该case包含break,则没有其他case语句匹配,因为在switch块之后将恢复执行。

由于break;,在angle变量遇到满足条件的第一种情况后,开关情况将中断

切换案例遵循自上而下的方法。所以尝试反向条件

switch (true) {
case (angle>300):
console.log("case1")
break;
case (angle>250):
console.log("case2")
break;
case (angle>200):
console.log("case3")
break;
... and so on
}

神奇之处在于使用可选的break语句,记住这一点:

与每个案例标签关联的可选break语句确保一旦匹配的语句为执行,并在切换后的语句处继续执行。如果中断被省略,程序在下一个继续执行switch语句中的语句。

如果删除每个case子句上的break语句,会发生什么?

我认为这句话解决了你的疑虑。

最新更新