【发布时间】:2023-04-08 13:06:02
【问题描述】:
以 FizzBuzz 为例,for 循环内的这个 switch case 在每个 case 之后都使用 break。
for (num = 1; num <= 100000; num ++) {
switch (true) {
case (num % 15 == 0):
console.log("FizzBuzz");
break;
case (num % 3 == 0):
console.log("Fizz");
break;
case (num % 5 == 0):
console.log("Buzz");
break;
default:
console.log(num);
break;
}
}
在 Mozilla 的 docs 中,他们说...
与每个 case 标签关联的可选 break 语句确保 一旦匹配的语句出现,程序就会跳出 switch 在 switch 之后的语句处执行并继续执行。如果 省略break,程序在下一个继续执行 switch 语句中的语句。
我假设它们的意思是当脚本检查 num % 15 == 0 时,如果没有中断并且即使它匹配 true,它也会转到 num % 3 ==0 等等。所以我用 100,000 个数字做了两次测试。一个有休息时间,一个没有休息时间。
我发现 break 和 no break 之间的差异大约为 2 秒,break 更短更快。但这是经过多次迭代。
我的问题是,对于大多数构建小型应用程序的开发人员来说,在他们的循环中使用中断真的很重要吗?这是习惯和偏好的问题吗?想法?
【问题讨论】:
-
不,如果没有
break- 它将无条件地执行以下所有case主体,直到遇到第一个break,或者switch块结束。 -
这不是性能问题,而是功能差异。
标签: javascript loops switch-statement