理解 javascript 嵌套 for 循环的问题 [关闭]

Posted

技术标签:

【中文标题】理解 javascript 嵌套 for 循环的问题 [关闭]【英文标题】:Problems in understanding javascript nested for loops [closed] 【发布时间】: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

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

【问题讨论】:

提示:仅使用笔和纸自行运行程序。 How to debug small programs 和 What is a debugger and how can it help me diagnose problems? 循环不“代表”一个数字。你知道一个简单的循环是如何工作的吗?阅读documentation。只要条件成立,循环就会执行语句。循环本身就是一个语句。 在日志中也包含i,它可能会帮助您更好地可视化 顺便说一句:输出不是“0 1 0 1 2 0 1 2 3”,看看你的控制台输出,你的第一个0旁边应该有一个小数字(2)。它告诉你你有前 0 两次。输出为“0 0 1 0 1 2 0 1 2 3” 【参考方案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');

    让 i = 0; (这只执行一次)

    i

    循环运行代码

    我 ++

    i

    循环运行代码

    我++

等等

【讨论】:

非常感谢!你的解释比我找到的许多教程都好 没问题,很高兴能帮到你:)

以上是关于理解 javascript 嵌套 for 循环的问题 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

七天学完JavaScript(day03)

带有嵌套for循环的Javascript多维数组-无法正常工作

JavaScript:嵌套For循环不起作用

单行嵌套 For 循环

javascript模板库jsrender for循环嵌套示例

在VB中 for 循环嵌套语句的用法语解释(必须清楚!!)