如何在for循环中解决* missing; *

时间:2016-12-30 14:24:26

标签: javascript for-loop

下午好, 下面的代码应该代表FizzBu​​zz游戏。

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 Debugger中遇到的错误

SyntaxError: missing ; after for-loop initialize 1.18.

我被卡住了。

2 个答案:

答案 0 :(得分: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 :(得分: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,它们也会给你带来错误。