正如你可以直接看到這是一個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