2012-02-04 55 views
2

嗨我剛開始學習JavaScript。我正在練習http://www.codecademy.com/。你可以在下面閱讀:在IF語句中使用數學函數

FizzBu​​zz是一款兒童遊戲,你可以從1到20的數量。簡單,對嗎?

這裏有一個問題:不是說可以被3整除的數字,而是說「Fizz」。而不是說可以被5整除的數字,比如說「Buzz」。對於可以被3和5整除的數字,請說「FizzBu​​zz」。

「1,2,菲斯,4,巴斯」 ......等等

讓我們使用的console.log從1打印出所有的數字和20

不過不要啓動不要按順序輸入數字 - 找一個更好的方法!

我可以得到使用for循環打印的數字,但現在我不知道如何用字符串替換數字。

我想過要做一個IF語句,比如「如果我除以3是零,然後打印Fizz」,但我不知道該怎麼做。看看我已經做了如下:

var i; 
for (i = 0; i <=20; i++) { 
    console.log(i); 
} 
if (i/3 = 0) { 
    console.log("Fizz") 
} 

任何幫助將是偉大的。

+0

除非我是0,I/3不能爲0。 – kennebec 2012-02-04 19:25:41

回答

2

==(或===)運算符進行比較,而不是=。後者用於賦值給變量或對象屬性。

做你if語句,那麼,你會這樣寫:

if (i/3 === 0) { 
    // ... 
} 

我以前===,因爲它是通常正確的事情; ==有一些奇怪的語義,在您掌握JavaScript之前可能會感到困惑。

正如@kennebec在評論中指出的那樣,你可能想要再次思考你的邏輯。也許你想檢查這個數是否爲,三除以。在這種情況下,您需要使用模運算符:

if (i % 3 === 0) { 
    // i is divisible by 3 
} 
3

您需要使用模運算符測試餘數。

if (i % 3 === 0) { 

模運算符返回左操作數除以右後的餘數。

12 % 3; // 0 
13 % 3; // 1 
14 % 3; // 2 
15 % 3; // 0 
0

其實你會想要更像(i % 3 == 0)的東西。

我不是很熟悉JavaScript所以它可能是一個不同的運營商,如果是這樣的話,%意味着。它將餘數分爲數字。所以在你的情況下,假設i3。然後i/3 == 1,但i % 3 == 0。如果i6,i/3 == 2,但i % 3 == 0仍然。

1
var i; 
for(i=1; i<=20; i++) { 
    console.log(i); 
    if(i/3 === 0) { 
     console.log("Fizz");  
    } 
    else if(i/5 === 0) { 
     console.log("Buzz"); 
    } 
} 

希望這將幫助你繼續你的做法在JavaScript

1

這工作:

for (i=1; i<21; i++) { 

    if(i%3 === 0 && i%5 !== 0) { 
     console.log("Fizz"); 
    } 

    else if (i%5 === 0 && i%3 !== 0) { 
     console.log("Buzz"); 
    } 

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