正如你可以直接看到这是一个for循环,有一些if条件就在这里(就是你说的“if conditionals”???)。 我有2个问题实际。为什么它跳过并继续,即使第一个if语句是真的
我上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”),而不是一直到几乎最后的底部代码和控制台。日志( “FizzBuzz”); 有人可以解释这对我来说,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);
}
}
你不能用萤火虫调试吗? – topcat3 2013-03-08 16:53:07
你说得对,15这个代码不应该生成“FizzBuzz”。你是否说过它? – 2013-03-08 16:56:54
15满足您的第一个条件,因为它可以被3整除,所以可以被5和3整除的测试永远不会执行。首先测试3和5是快速的方法。 – 2013-03-08 16:58:21