本文介绍了为什么我的FizzBuzz代码无法正确输出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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);
i!== i 永远不能为 true ,它的值相同,始终为 i === i 或您的情况错误
由于上述错误,因此您将具有以下数学公式: false%numOne 这将导致 NaN ,并且 NaN不等于0
i !== i can never be true, it's the same value, it's always i === i or in your case false
Since the above is false, you'll have a math equation of: false % numOne this will result in a NaN and NaN does not equal 0
对于else if循环,它应该console.log所有< = 100 ,但不是 i%numOne === 0 和的数字> i%numTwo === 0 .那么,为什么在输出中仅显示 Fizz , Buzz 和 FizzBuzz ?
For the else if loop, it should console.log all numbers that are <=100, but are not i % numOne === 0 and i % numTwo === 0. So why are only Fizz, Buzz, and FizzBuzz showing up in the output?
推荐答案好,我不想写一个答案,但是由于您是新来的,所以我将以一种更有意义的方式来说明这一点:
Ok, I didn't want to write an answer but since you're new here, I'll put this in a more meaningful way:
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如上所述,这里有两个问题:
as stated above, there are two issues here:
希望如此,以上评论有助于理解您的问题
Hope this and the comments above helps understand your issue
更多推荐
为什么我的FizzBuzz代码无法正确输出?
发布评论