为什么我的 FizzBuzz 代码输出不正确?
Why is my FizzBuzz code not outputting correctly?
function counter(numOne, numTwo) {
for (let i = 0; i <= 100; i++) {
if (i % numOne === 0) {
console.log("Fizz");
}
if (i % numTwo === 0) {
console.log("Buzz");
}
if (i % numOne === 0 && i % numTwo === 0) {
console.log("FizzBuzz");
}
else if (i <= 100 && i !== i % numOne === 0 || i !== i % numTwo === 0) {
console.log(i);
}
}
}
counter(3, 5);
对于 else if 循环,它应该 console.log 所有 <=100 但不是 i % numOne === 的数字0 和 i % numTwo === 0。那么为什么只有 Fizz、Buzz 和 FizzBuzz 出现在输出中?
好吧,我不想写答案,但既然你是新来的,我会用更有意义的方式来回答:
function counter(numOne, numTwo) {
for (let i = 0; i <= 100; i++) {
const isFizz = i % numOne === 0
const isBuzz = i % numTwo === 0
if (isFizz && isBuzz) {
console.log("FizzBuzz");
}
else if (isFizz) {
console.log("Fizz");
}
else if (isBuzz) {
console.log("isBuzz")
}
else {
console.log(i);
}
}
}
counter(3, 5);
在您的示例中,您有:
i !== i % numOne === 0
如上所述,这里有两个问题:
- i !== i 永远不可能是 true,它是相同的值,总是 i == = i 或者你的情况 false
- 由于以上为假,您将得到一个数学方程式:false % numOne 这将导致 NaN 和NaN 不等于 0
希望以上内容和评论有助于理解您的问题
function counter(numOne, numTwo) {
for (let i = 0; i <= 100; i++) {
if (i % numOne === 0) {
console.log("Fizz");
}
if (i % numTwo === 0) {
console.log("Buzz");
}
if (i % numOne === 0 && i % numTwo === 0) {
console.log("FizzBuzz");
}
else if (i <= 100 && i !== i % numOne === 0 || i !== i % numTwo === 0) {
console.log(i);
}
}
}
counter(3, 5);
对于 else if 循环,它应该 console.log 所有 <=100 但不是 i % numOne === 的数字0 和 i % numTwo === 0。那么为什么只有 Fizz、Buzz 和 FizzBuzz 出现在输出中?
好吧,我不想写答案,但既然你是新来的,我会用更有意义的方式来回答:
function counter(numOne, numTwo) {
for (let i = 0; i <= 100; i++) {
const isFizz = i % numOne === 0
const isBuzz = i % numTwo === 0
if (isFizz && isBuzz) {
console.log("FizzBuzz");
}
else if (isFizz) {
console.log("Fizz");
}
else if (isBuzz) {
console.log("isBuzz")
}
else {
console.log(i);
}
}
}
counter(3, 5);
在您的示例中,您有:
i !== i % numOne === 0
如上所述,这里有两个问题:
- i !== i 永远不可能是 true,它是相同的值,总是 i == = i 或者你的情况 false
- 由于以上为假,您将得到一个数学方程式:false % numOne 这将导致 NaN 和NaN 不等于 0
希望以上内容和评论有助于理解您的问题