循环(for 与 while)
了解循环如何自动重复代码——for 循环用于已知次数,while 循环用于条件成立时。
你将学到
- 循环为什么存在、它替代了什么
- for 循环如何按范围计数
- while 循环如何重复到条件失败
- 如何避免死循环
概念讲解
循环(for 与 while)
循环让一段代码重复执行多次。没有循环,你就得把同样的行复制粘贴 N 遍——想象手工打印 100 次"Hello"。循环让你只写一次指令,再说"重复 N 次"。
for 循环
当你知道要重复几次时用 for。它有三部分:初始化、条件、更新。
for (let i = 0; i < 5; i++) {
console.log("Iteration", i);
}
// 打印:Iteration 0, 1, 2, 3, 4
let i = 0—— 循环开始前执行一次。i < 5—— 每次迭代前检查,为真则继续。i++—— 每次迭代后执行,让计数器自增。
while 循环
当你不知道要重复几次、只想"重复到条件为假"时用 while。
let dice = 0;
while (dice !== 6) {
dice = Math.floor(Math.random() * 6) + 1;
console.log("Rolled:", dice);
}
当心死循环
死循环永不停止,因为条件永远为真,会卡死程序。务必确保循环的推进最终会让条件变假——比如 i 朝上限增长,或 dice 确实能掷到 6。
需要更细的控制时,用 break 提前退出、continue 跳到下一次迭代。
示例代码
// for 循环:从 5 倒数
for (let i = 5; i > 0; i--) {
console.log(i);
}
console.log("Liftoff!");
// while 循环:不断翻倍直到超过 100
let value = 1;
let steps = 0;
while (value <= 100) {
value *= 2;
steps++;
}
console.log(`Reached ${value} in ${steps} steps`); // Reached 128 in 7 steps
for 循环倒数,因为 i-- 每步让 i 减一。while 循环不断翻倍,直到条件 (value <= 100) 为假。
动手试一试
- Crontab Generator
Cron 表达式本质上是"时间上的循环"——"每 N 分钟运行一次"。
常见错误
错误写法
写出的 while 条件永远不可能为假。
正确做法
确保循环体修改了条件中用到的变量。心里走一遍:每次迭代都在推进吗?
错误写法
差一错误:用了 < 而非 <=。
正确做法
先想清楚端点是否包含。for (let i = 0; i <= n; i++) 跑 n+1 次;i < n 跑 n 次。测边界。
相关资源
相关代码片段
- JavaScript Array Methods
forEach、map 等数组方法其实是循环的化身。
练习 循环(for 与 while)
2 个练习
查阅不认识的术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
动手做项目
通过引导式项目应用所学,含起始代码与解决方案。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。