理解 javascript 嵌套 for 循环的问题
Problems in understanding javascript nested for loops
我试图理解嵌套循环在javascript中,但它非常混乱。
我有这段代码,但我不明白它是如何工作的:
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
我正在尝试找出哪个循环代表每个数字。
运行 这段代码:
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 < 0),这是不正确的。
了解嵌套循环如何工作的最好方法是在纸上写下每个步骤和变量值,如下所示:
n = 5
第 1 步:
- 我=0
- i < n (0 < 5) 真
- j = 0
- j < i (0 < 0) FALSE 内循环不执行
- 输出:
"Outer: 0 Inner:"
- str = ''
第 2 步:
- 我=1
- 我 < n (1 < 5) 真
- j = 0
- j < i (0 < 1) 真
- str = 0
- j = 1 (j++)
- j < i (1 < 1) 假
- 输出:
"Outer: 1 Inner: 0"
- str = ''
依此类推...不断重复直到外循环中的参数为假 (i < n)。
你必须记住,在for循环中执行的命令顺序:
for(let i = 0; i < 5; i++) {
console.log('It works');
}
令i = 0; (这只执行一次)
i < 5(如果为真 运行 3 和 4)
运行循环中的代码
我++
i < 5(如果为真 运行 6 和 7)
运行循环中的代码
i++
等等
我试图理解嵌套循环在javascript中,但它非常混乱。
我有这段代码,但我不明白它是如何工作的:
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
我正在尝试找出哪个循环代表每个数字。
运行 这段代码:
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 < 0),这是不正确的。
了解嵌套循环如何工作的最好方法是在纸上写下每个步骤和变量值,如下所示:
n = 5
第 1 步:
- 我=0
- i < n (0 < 5) 真
- j = 0
- j < i (0 < 0) FALSE 内循环不执行
- 输出:
"Outer: 0 Inner:"
- str = ''
第 2 步:
- 我=1
- 我 < n (1 < 5) 真
- j = 0
- j < i (0 < 1) 真
- str = 0
- j = 1 (j++)
- j < i (1 < 1) 假
- 输出:
"Outer: 1 Inner: 0"
- str = ''
依此类推...不断重复直到外循环中的参数为假 (i < n)。
你必须记住,在for循环中执行的命令顺序:
for(let i = 0; i < 5; i++) {
console.log('It works');
}
令i = 0; (这只执行一次)
i < 5(如果为真 运行 3 和 4)
运行循环中的代码
我++
i < 5(如果为真 运行 6 和 7)
运行循环中的代码
i++
等等