Javascript 为什么我的FizzBuzz代码输出不正确? 功能计数器(numOne、numTwo){ 对于(让i=0;i
好的,我不想写一个答案,但是因为你是新来的,我会用一种更有意义的方式来写:Javascript 为什么我的FizzBuzz代码输出不正确? 功能计数器(numOne、numTwo){ 对于(让i=0;i,javascript,fizzbuzz,Javascript,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 % numO
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%numOne===0导致:false%numOne==0,这是NaN==0,这永远不会是真的:)尝试将else if条件更改为
(我欢迎堆栈溢出。注意,已经有(很多)Stack Overflow上提供的FizzBuzz问题/答案。与其发布另一个FizzBuzz问题,不如先在此处搜索现有问题,如果所有现有问题都无法帮助您(自己)找到答案,则只添加一个新的(您的)问题。(在这种情况下,您将链接到现有问题并解释区别).看一看。所以我基本上只需要调整else if,但为了进一步简化,我可以在变量中创建它们。知道这一点很好。在了解中间javascript之前,我还有很长的路要走!谢谢!有很多方法可以进行FizzBuzz挑战,但我之所以将它们指定给变量是因为当名称更有意义时,当您在多个位置使用相同(或相反)条件时,更容易理解逻辑。实际上,只有当numOne为0时,才更正我答案中的一小部分,因此(false%0)导致NaN,任何其他数字都等于0,但我不相信布尔值和数字之间的数学结果:)你会进入奇怪的臭虫领域!@Thomas你是对的,但我正在解决她所问的问题,这是else表达式。我会更新答案以显示正确的FizzBuzz行为,这样就不会混淆或误导任何人。@Cutecat42,请看你如何处理这个FizzBuzz而不需要最后一个“else if”
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