【问题标题】:What happens in this for-loop?在这个 for 循环中会发生什么?
【发布时间】:2018-04-03 16:17:18
【问题描述】:

我仍然难以准确掌握 for 循环中发生的情况。只是想知道是否有人愿意解释到底发生了什么以使输出等于 16?提前致谢!

var x = 1;
 for (var i = 0; i < 3; i++) {
  x += 5 * i;
 }

【问题讨论】:

  • 什么,具体来说,你不明白吗?这里几乎没有,所有这些都应该很容易在基本的 JS 参考中找到(例如您可以在 MDN 上找到)。它甚至没有使用任何 ES6 特性。
  • 从一个更简单的for循环开始,使用调试器,你就会明白其中发生了什么
  • 你有没有尝试过像这样调试代码,比如在 Chrome 网络工具调试器中?这将是理解这一点的最简单方法。放置一个断点并单步执行循环,查看每次执行时 x 和 i 的值。
  • 最好用这段代码写一个小程序,逐行逐行查看它在做什么。
  • 添加一个console.log(x); x += 5 * i 之前和之后;表达。你会知道出了什么问题。

标签: javascript for-loop


【解决方案1】:
var x = 1;

x 的值等于 1,因此循环中的第一次迭代会显示。

for (var i = 0; i < 3; i++) {
    x += 5 * i;
}

基本上是这样的:

x 的值为 1,而在第一次迭代中 i 的值为 0,所以

x + (5*0) = 1 //Because 5*0 is 0 and 0+1 = 1

在第二次迭代中 x 的值为 1 和 i 的值为 1 所以

x + (5*1) = 6 // Because 5*1 is 5 + 1 = 6

在第三次迭代中,x 的值为 6,i 的值为 2,所以

x + (5*2) = 16 // Because 5*2 is 10 + 6 = 16

希望这有助于您了解发生了什么。

【讨论】:

    【解决方案2】:

    for 循环是一种将一组指令执行一定次数的方法。在您的情况下,您正在执行 3 次操作。

    第一遍:x = 1。将 (5 * 0) 添加到 x。 x = 1。i 加 1,现在为 1。

    第二遍:x = 1。将 (5 * 1) 添加到 x。 x = 6。i 增加 1,现在是 2。

    第三遍:x = 6。将 (5 * 2) 添加到 x。 x = 16。i 增加 1,现在是 3。

    第四遍:控制变量 i 不再满足循环条件 (i

    【讨论】:

      【解决方案3】:

      循环运行 3 次,因为 i 值从 0,1,2 开始,循环结束时 X 值也会变为 16。

      【讨论】:

      • 它运行了 3 次。
      猜你喜欢
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多