JavaScript for 循环

在 JavaScript 中,for 循环用于将一段代码执行固定次数,或者遍历一个数组的元素。

下面是一个 for 循环的快速示例。您可以阅读教程的其余部分以获取更多详细信息。

示例

for (let i = 0; i < 3; i++) {
    console.log("Hello, world!");
}

// Output:
// Hello, world!
// Hello, world!
// Hello, world!

在此示例中,我们使用 for 循环将 "Hello, world!" 打印到控制台三次。


JavaScript for 循环语法

for 循环的语法是:

for (initialExpression; condition; updateExpression) {
    // for loop body
}

这里,

  • initialExpression - 初始化一个计数器变量
  • condition - 要评估的条件。如果为 true,则执行 for 循环的主体。
  • updateExpression - 更新 initialExpression 的值。

一旦循环完成一次迭代,就会再次评估 condition。该过程一直持续到条件为 false

要了解有关 condition 的更多信息,请访问JavaScript 比较和逻辑运算符


JavaScript for 循环流程图

Working of for loop in JavaScript with flowchart
JavaScript for 循环流程图

示例 1:打印数字 1 到 5

for (let i = 1; i < 6; i++) {
    console.log(i);
}

输出

1
2
3
4
5

在此示例中,我们使用 for 循环打印了数字 15

这个程序的工作原理如下:

迭代 变量 条件:i < 6 操作
第 1 次 i = 1 true 打印 1
i 增加到 2
第 2 次 i = 2
true 打印 2
i 增加到 3
第 3 次 i = 3 true 打印 3
i 增加到 4
第 4 次 i = 4
true 打印 4
i 增加到 5
第 5 个 i = 5
true 打印 5
i 增加到 6
第 6 个 i = 6
false 循环终止。

示例 2:显示 n 个自然数的总和

// program to display the sum of natural numbers

let sum = 0;
const n = 100

// loop from i = 1 to i = n // in each iteration, i is increased by 1 for (let i = 1; i <= n; i++) { sum += i; // sum = sum + i }
console.log(`sum: ${sum}`); // Output: sum: 5050

最初,sum 的值为 0,而 n 的值为常量 100

然后,我们从 i = 1 到 n 迭代一个 for 循环。在每次迭代中,

  • i 被加到 sum 中。
  • 然后,i 的值增加 1

i 变为 101 时,测试条件变为 falsesum 将等于 0 + 1 + 2 + ... + 100


遍历数组

for 循环也可用于遍历数组的元素。例如,

const fruits = ["apple", "banana", "cherry"];

for (let i = 0; i < fruits.length; i++) {
    console.log(fruits[i]);
}

输出

apple
banana
cherry

此循环遍历 fruits 数组并将每个元素打印到控制台。


更多关于 JavaScript for 循环

嵌套for循环

一个 for 循环中也可以包含另一个 for 循环。对于外层循环的每个周期,内层循环都会完成其整个迭代序列。例如,

// outer loop 
for (let i = 0; i < 3; i++) {

    // inner loop
    for (let j = 0; j < 2; j++) {
        console.log(`i = ${i}, j = ${j}`);
    }

}

输出

i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1

这里,

  • 外层循环 - 从 i = 0 到 2 运行。
  • 内层循环 - 从 j = 0 到 1 运行。

在外层循环的每次迭代中,内层循环都从 j = 0 到 1 运行。

JavaScript 无限 for 循环

在 JavaScript 中,我们可以通过设置一个始终求值为 true 的条件来创建无限 for 循环。例如,

for (let i = 0; true; i++) {
    console.log("This loop will run forever!");
}

输出

This loop will run forever!
This loop will run forever!
This loop will run forever!
…

在此示例中,for 循环中的条件显式设置为 true

由于此条件永远不会改变且始终求值为 true,因此循环将无限期地继续(直到内存耗尽)。

注意:我们通常应避免创建无限循环,因为它将消耗所有可用资源来无休止地执行循环。

省略 for 循环的部分

我们可以省略 for 循环声明的任何部分,并将其包含在代码的其他部分。

让我们看一个例子。

// initialization outside the loop
let i = 0;

// omit initialization and update statements
for (; i < 3; ) {

    console.log(`i is ${i}`);

    // increment inside the loop body
    i++; 
}

输出

i is 0
i is 1
i is 2

在这里,我们在循环之前初始化了 i,该循环将一直迭代,直到 i 小于 3

请注意,i 在循环体内递增,这允许我们跳过 for 循环括号 () 中的更新语句。

换句话说,for (; i < 3; ) 表示省略了初始化和更新表达式,只关注条件。


另请阅读

在结束之前,让我们来测试一下你对 JavaScript for 循环的掌握程度!你能解决下面的挑战吗?

挑战

编写一个函数来计算一个数字的阶乘。

  • 非负整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。
  • 例如,3 的阶乘是 3 * 2 * 1 = 6
  • 返回输入数字 num 的阶乘

视频:JavaScript for 循环

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战