【问题标题】:Problems in understanding javascript nested for loops [closed]理解 javascript 嵌套 for 循环的问题 [关闭]
【发布时间】:2022-01-10 16:33:50
【问题描述】:

我试图理解 javascript 中的嵌套 for 循环,但这很令人困惑。

我有这段代码,但我不明白它是如何工作的:

let n = 5;
for (let i = 0; i < n; i++) {
    for (let j = 0; j < i; j++) {
    console.log(j);
}}

在控制台中我有:0 1 0 1 2 0 1 2 3

我正在尝试找出哪个循环代表每个数字。

【问题讨论】:

  • 提示:仅使用笔和纸自行运行程序。
  • 循环不“代表”一个数字。你知道一个简单的循环是如何工作的吗?阅读documentation。只要条件成立,循环就会执行语句。循环本身就是一个语句。
  • 在日志中也包含i,它可能会帮助您更好地可视化
  • 顺便说一句:输出不是“0 1 0 1 2 0 1 2 3”,看看你的控制台输出,你的第一个0旁边应该有一个小数字(2)。它告诉你你有前 0 两次。输出为“0 0 1 0 1 2 0 1 2 3”

标签: javascript loops for-loop nested-loops


【解决方案1】:

运行此代码:

let n = 5;
let str = '';
for (let i = 0; i < n; i++) {
    for (let j = 0; j < i; j++)
        str += j;
   
   console.log("Outer: "+i+" Inner: "+str);
   str = '';
}

输出是:

Outer: 0 Inner: 
Outer: 1 Inner: 0
Outer: 2 Inner: 01
Outer: 3 Inner: 012
Outer: 4 Inner: 0123

如您所见,在上面的输出中,内循环(带有变量 j 的循环)没有运行,因为如果您将变量替换为数字,它将是 0 &lt; 0 (i

了解嵌套循环如何工作的最佳方法是将每个步骤和变量值写在纸上,如下所示:

n = 5

第 1 步:

  • i = 0
  • i
  • j = 0
  • j
  • 输出:"Outer: 0 Inner:"
  • str = ''
  • 第 2 步:

    • i = 1
    • i
    • j = 0
    • j
    • str = 0
    • j = 1 (j++)
    • j
  • 输出:"Outer: 1 Inner: 0"
  • str = ''
  • 以此类推……不断重复,直到外循环中的参数为假(i

    您必须记住,在 for 循环中执行的命令顺序:

    for(let i = 0; i < 5; i++) {
      console.log('It works');
    }
    
    1. 让 i = 0; (这只执行一次)

    2. i

    3. 循环运行代码

    4. 我 ++

    5. i

    6. 循环运行代码

    7. 我++

    等等

    【讨论】:

    • 非常感谢!你的解释比我找到的许多教程都好
    • 没问题,很高兴能帮到你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多