问题描述
我只想知道为什么 'FizzBuzz 仅在 num % 15 === 0 为第一个时有效,而不是 num % 3 === 0 为第一个时。
例如:
for (let num = 1; num <= 100; num++) {
if (num % 15 === 0) {
console.log('FizzBuzz');
} else if (num % 5 === 0) {
console.log('Buzz')
} else if (num % 3 === 0) {
console.log('Fizz');
} else {
console.log(num);
}
}
对比
for (let num = 1; num <= 100; num++) {
if (num % 3 === 0) {
console.log('Fizz');
} else if (num % 5 === 0) {
console.log('Buzz')
} else if (num % 15 === 0) {
console.log('FizzBuzz');
} else {
console.log(num);
}
}
解决方法
else if
基本上意味着“如果前一个条件没有通过 THEN IF...”。因此,在您的第二个代码段中,如果 num % 3 === 0
为 true,则它永远不会检查 num % 5 === 0
或 num % 15 === 0
。