2016-12-30 66 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,它们也会造成你的错误。