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个]
无法在Google中找到任何线索。所以我在这里询问另一个话题已经提出过。但我真的不明白some clue here
神奇之处在于使用了可选的break语句,记住这一点:
与每个案例标签关联的可选break语句可确保一旦匹配的语句是已执行,并在切换后的语句处继续执行。如果省略break,程序在下一个继续执行语句在switch语句中。
如果删除每个case子句上的break语句会发生什么?
我认为这句话解决了您的疑问。
由于break;
,在angle
变量遇到第一个满足条件的情况后,切换大小写将break。
切换案例遵循从上到下的方法。因此,请尝试逆向条件
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
}
switch语句为它匹配的第一个case
执行块(按照case语句从上到下列出的顺序)。
[如果case
包含break
,则不会匹配其他任何case
语句,因为在switch
块之后将继续执行。