所以这段代码当然有效:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var day;
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
document.getElementById("demo").innerHTML = "Today is " + day;
</script>
</body>
</html>
&#13;
但没有break;
语句,它不会:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var day;
switch (new Date().getDay()) {
case 0:
day = "Sunday";
case 1:
day = "Monday";
case 2:
day = "Tuesday";
case 3:
day = "Wednesday";
case 4:
day = "Thursday";
case 5:
day = "Friday";
case 6:
day = "Saturday";
}
document.getElementById("demo").innerHTML = "Today is " + day;
</script>
</body>
</html>
&#13;
我想知道为什么它会显示&#34;星期六&#34;如果我省略休息声明,即使是星期六也不是这样,因为今天是星期二。 你知道为什么它会出现在案例6并输出星期六而不是什么时候省略break语句? 谢谢你的帮助。
答案 0 :(得分:2)
您需要break
语句的原因是因为switch
的工作方式不同。当您有多个这样的条件时,它将从匹配开始,然后一直持续到结束或直到它被break
中断。因此,对于星期二,实际的代码流是这样的:
case 2:
day = "Tuesday";
day = "Wednesday";
day = "Thursday";
day = "Friday";
day = "Saturday";
最终得到Saturday
。如果您在调试器中单步执行代码,则可以轻松看到这一点(例如,使用Chrome开发工具)。
如果您将break
放在每个case
的末尾,那么流程将如下所示:
case 2:
day = "Tuesday";
break;
你最终得到了Tuesday
。
答案 1 :(得分:0)
break是为了结束只应该针对该情况运行的语句的执行。 如果你没有中断,语句的执行将继续,直到它达到最后一个案例或默认情况。