当满足所有条件时,javascript中的开关如何工作

问题描述 投票:0回答:4
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

javascript java node.js express switch-statement
4个回答
0
投票

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

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

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

我认为这句话解决了您的疑问。


0
投票

由于break;,在angle变量遇到第一个满足条件的情况后,切换大小写将break


0
投票

切换案例遵循从上到下的方法。因此,请尝试逆向条件

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
}

0
投票

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

[如果case包含break,则不会匹配其他任何case语句,因为在switch块之后将继续执行。

© www.soinside.com 2019 - 2024. All rights reserved.