【问题标题】:Javascript Infinite For Loop [closed]Javascript无限循环[关闭]
【发布时间】:2019-04-03 16:28:59
【问题描述】:

我正在学习 javascript 中的循环,并尝试了一些我编写了以下基本代码的东西。

此代码生成一个无限循环,只会在控制台中无限期地打印数字 4。

问题是我不明白这背后的逻辑以及它发生的确切原因

for(let i = 0; i = 4; i++){
   console.log(i);
}

【问题讨论】:

  • i =< 4 打印每个数字最多4个
  • 第二个表达式必须是一个布尔条件,但你的是一个赋值(这是真的)。所以它永远循环。

标签: javascript loops for-loop infinite-loop


【解决方案1】:

在您的循环中,条件部分使用assignment operator=,您应该使用comparison operator,例如!==。另请注意,条件应该为 false 才能退出 for 循环。所以!== 是(或<=,出于个人原因我不喜欢),而不是===

for(let i = 0; i !== 4; i++){
   console.log(i);
}

所以你的代码无限期地运行,因为i = 4truthy。它打印 4 因为i = 4 将 4 分配给 i after increment

【讨论】:

    【解决方案2】:

    i = 4 是一个表达式,它将返回 44 是 trucy 值,因此条件永远不会为假,循环永远不会结束

    console.log(i=4); //4
    console.log(Boolean(i=4)); //true
    您应该使用小于运算符

    for(let i = 0; i <= 4; i++){
       console.log(i);
    }

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 2020-04-26
      • 2018-04-30
      • 2016-07-12
      • 2017-05-19
      相关资源
      最近更新 更多