2016-12-30 68 views
-4

下午好, 下面的代碼應該是代表的是FizzBu​​zz遊戲。如何解決*丟失; *在for循環中

for (var i = 0, i < 100, i++) { 
    if(((i % 3) == 0) && ((i % 5) = 0)) {document.write('FizzBuzz')} 
else if(((i % 3) == 0) && ((i % 5) != 0)) {document.write('Fizz')} 
else if(((i % 3) != 0) && ((i % 5) == 0)) {document.write('Buzz')} 
else {document.write(i)} 
    } 

這是我在Mozilla Firefox調試器

SyntaxError: missing ; after for-loop initialize 1.18. 

我堅持了這個錯誤。

+5

使用';'而不是'''在你的for(var i = 0,i <100,i ++)' - 它應該是'for(var i = 0; i <100; i ++)' – Santi

+0

我的上帝,我現在感覺自己像個白癡。謝謝。 – Sabino

回答

2

有兩種可能的錯誤

1)在for循環的條件語句應該是;,

2)在((i % 5) = 0)一個無效的左側分配,應該是((i % 5) == 0)

要調試此類問題,請使用任何linter並正確縮進代碼

for (var i = 0; i < 100; i++) { 
    if (((i % 3) == 0) && ((i % 5) == 0)) { 
    document.write('FizzBuzz') 
    } else if (((i % 3) == 0) && ((i % 5) != 0)) { 
    document.write('Fizz') 
    } else if (((i % 3) != 0) && ((i % 5) == 0)) { 
    document.write('Buzz') 
    } else { 
    document.write(i) 
    } 
} 

DEMO

1

你應該在你的循環使用半分號,而不是逗號:

for (var i = 0; i < 100; i++) 
{ 
    if (i % 3 == 0 && i % 5 == 0) {document.write('FizzBuzz')} 
    else if (i % 3 == 0 && i % 5 != 0) {document.write('Fizz')} 
    else if (i % 3 != 0 && i % 5 == 0) {document.write('Buzz')} 
    else {document.write(i)} 
} 

你也有一個巨大的括號超載!你不需要那麼多的parens,它們也會造成你的錯誤。