0

正如您可以立即看到的,这是一个带有一些 if 条件的 for 循环(这就是您所说的“if 条件”???)。我实际上有 2 个问题。

我正在开发 CodeAcademy,它要求我这样做:

Print out the numbers from 1 - 20.
The rules:
For numbers divisible by 3, print out "Fizz".
For numbers divisible by 5, print out "Buzz".
For numbers divisible by both 3 and 5, print out "FizzBuzz" in the console.
Otherwise, just print out the number.**

这就是我到目前为止所做的,我认为它工作正常,而且总的来说是正确的,但 CodeAcademy 并没有说它是正确的。我想知道是否有人知道我的代码是否有问题,或者这是否只是执行他们要求的确切事情的另一种方式(请参阅上面的规则)。

也是第二个问题,这是我比较好奇的问题。如果我们现在以 15 为例。JavaScript 遇到 15 时是怎么想的。如果 15 能被 3 整除,剩下 0,不应该是 console.log("Fizz"),而不是一路下到几乎最后的底部代码和 console.log (“嘶嘶声”);有人可以向我解释一下吗,pleeaassee :)

 for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
        if (iterator % 3 === 0) {
            console.log("Fizz");

        } else if (iterator % 5 === 0) {
            console.log("Buzz");

        } else if (iterator % 3 === 0) {
            if (iterator % 5 === 0) {
                console.log("FizzBuzz");
            }
        } else {
            console.log(iterator);
        }

    }
4

2 回答 2

2

我测试了你的代码,没有得到你描述的输出,15 成功打印了“FizzBu​​zz”。我得到 15 显示为“Fizz”的预期结果。它无法正常工作,因为它没有机会到达最终的 if 语句以打印出 15 的“FizzBu​​zz”。一个简单的解决方法是在数字可被 3 整除时检查是否可被 5 整除。

for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
    if (iterator % 3 === 0) {
        if (iterator % 5 === 0) {
            console.log("FizzBuzz"); //divisible by 3 and 5
        } else {
            console.log("Fizz"); //only divisible by 3
        }
    } else if (iterator % 5 === 0) {
        console.log("Buzz"); //only divisible by 5
    } else {
        console.log(iterator); //not divisible by 3 or 5
    }
}
于 2013-03-08T16:59:42.993 回答
-1

它可能会为您提供解决方案:只需重新排列代码:

for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {

   if (iterator % 3 === 0) {
       if (iterator % 5 === 0) {
            console.log("FizzBuzz");
        }
    }else if (iterator % 3 === 0) {
        console.log("Fizz");

    } else if (iterator % 5 === 0) {
        console.log("Buzz");

    } else {
        console.log(iterator);
    }

}

首先检查满足被 3 和 5 整除的条件。然后分别检查 3 和 5。

于 2013-03-08T17:03:40.290 回答