FizzBu​​zz:num%15 是第一个,而 num%3 是第一个

问题描述

我只想知道为什么 'FizzBu​​zz 仅在 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 === 0num % 15 === 0