【发布时间】:2018-05-22 03:39:32
【问题描述】:
我正在尝试解决著名的 FizzBuzz 测验,但我决定使用逻辑运算符 or 而不是 else 来提供后卫。
for (var num = 1; num <= 100; num++) {
var output;
if (num % 5 === 0 && num % 3 === 0) {
output = "FizzBuzz";
} else if (num % 5 === 0) {
output = "Buzz";
} else if (num % 3 === 0) {
output = "Fizz";
}
console.log(output || num);
}
这应该打印从 1 到 100 的所有数字,但有一些例外。对于可被 3 整除的数字,打印“Fizz”而不是数字,对于可被 5 整除的数字,打印“Buzz”,而对于能被 3 和 5 整除的数字,则打印“FizzBuzz”。
但它不打印任何数字。
【问题讨论】:
-
您的
console.log(output || num)输出output是否已定义。如果未定义,则输出num。因为定义了output,所以它会被输出,而num不会。
标签: javascript loops logical-operators console.log