3.8 for 循环与数组遍历
循环会重复执行一段代码。上一节的 while 循环适合“条件还成立就继续”。for 循环更适合能用计数器描述的重复:从哪里开始,到哪里之前继续,每轮怎么更新。
下面的实验把 1 加到 5,你可以一步步推进,看 i 和 sum 怎么变化。
正在加载交互实验...
for 循环的三部分
js
for (let i = 1; i <= 5; i++) {
console.log(i);
}括号里有三部分,用分号隔开:
1. 初始化 let i = 1:循环开始前执行一次。 2. 继续条件 i <= 5:每轮循环前检查。 3. 更新 i++:每轮循环结束后执行。
执行流程是:
text
初始化 -> 判断 -> 执行循环体 -> 更新 -> 再判断 -> ...当条件变成 false,循环就停止。
正在加载概念检查...
正在加载交互实验...
固定次数重复
如果重复次数已知,就可以使用计数循环:
js
for (let i = 0; i < 3; i++) {
console.log("练习 JavaScript");
}这会打印三次相同文字。注意常见的从 0 开始模式:
js
for (let i = 0; i < count; i++) {
// 执行 count 次
}累加
循环经常用来一步步构造结果:
js
let sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum); // 5050sum 是累加变量。它从 0 开始,每一轮都加入一个新值。
正在加载概念检查...
移动窗口例子
有些循环不只是让计数器递增。它会保留一小段“前面的值”,每轮把窗口向后移动。斐波那契数列就是典型例子:每一项等于前两项之和。
正在加载交互实验...
用下标遍历数组
数组下标从 0 开始,所以经典循环通常这样写:
js
const scores = [88, 92, 75, 100];
for (let i = 0; i < scores.length; i++) {
console.log(`第 ${i + 1} 位同学:${scores[i]}`);
}最后一个有效下标是 scores.length - 1,所以条件写 i < scores.length,不是 i <= scores.length。
for-of:直接处理每个元素
如果不需要下标,for...of 更简洁:
js
const fruits = ["苹果", "香蕉", "橙子"];
for (const fruit of fruits) {
console.log(fruit);
}需要位置时用下标循环。只关心值时用 for...of。
正在加载本节练习...