理解 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 < 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 循环的问题 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
带有嵌套for循环的Javascript多维数组-无法正常工作