【问题标题】:How to solve a *missing ;* in a for loop [closed]如何在 for 循环中解决 *missing ;* [关闭]
【发布时间】:2016-12-30 14:24:25
【问题描述】:

下午好, 下面的代码应该代表 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 调试器中遇到的错误

SyntaxError: missing ; after for-loop initialize 1.18.

我被困住了。

【问题讨论】:

  • 在您的for (var i = 0, i &lt;100, i++) 中使用; 而不是, - 它应该是for (var i = 0; i &lt;100; i++)

标签: javascript for-loop


【解决方案1】:

有两种可能的错误

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

【讨论】:

    【解决方案2】:

    您应该在循环中使用分号而不是逗号:

    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)}
    }
    

    你也有大量的括号超载!你不需要那么多括号,它们也会导致你出错。

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 2013-08-23
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多