for 循环:重复的艺术
为什么需要循环?
假设你要打印 1 到 5:
print(1)
print(2)
print(3)
print(4)
print(5)
如果要打印 1 到 1000 呢?复制粘贴 1000 行?当然不——循环就是干这个的。
基本 for 循环
加载代码编辑器中……
这是两种语言差别最大的地方之一:
| Python | JavaScript | |
|---|---|---|
| 语法 | for x in 可迭代对象: | for (let i = 0; i < n; i++) {} |
| 风格 | 像英语:"对于每个 x 在 xxx 中" | 像数学:"初始值;条件;步进" |
| 简洁 | ✅ 超级简洁 | ❌ 要写三段(但很灵活) |
Python 的 for 循环像在说人话:"对于 每个 i 在 range(5) 里,做这件事"。JS 的经典 for 循环更像在配置一台机器的三个参数。
遍历列表/数组
这是循环最常见的用途:
加载代码编辑器中……
JS 的循环选择指南
JS 有好几种 for 循环,初学者容易晕。简单记:
| JS 循环方式 | 什么时候用 |
|---|---|
for (let i = 0; ...) | 需要精确控制索引时 |
for (const x of arr) | 遍历数组元素(最像 Python) |
arr.forEach(fn) | 需要索引 + 元素时 |
for (const key in obj) | 遍历对象的键(⚠️ 别用在数组上) |
踩坑提醒
for...in 和 for...of 别搞混! 这是 JS 初学者踩坑 Top 3。
for...in→ 遍历键名(key),主要用于对象for...of→ 遍历值(value),用于数组
const arr = ["a", "b", "c"]
for (const x in arr) console.log(x) // "0", "1", "2"(索引!)
for (const x of arr) console.log(x) // "a", "b", "c"(值!)
如果看到 for...in 用在数组上,基本可以确认是 bug——应该用 for...of。
嵌套循环
循环里套循环,用来处理二维数据(比如表格、棋盘):
加载代码编辑器中……
break 和 continue
有时你需要提前退出循环或跳过某次:
加载代码编辑器中……
好消息:break 和 continue 在两种语言里含义和用法完全一样!终于有个不用记区别的了 🎉
🏋️AI 练习
用 for 循环完成 "FizzBuzz" 经典面试题:
打印 1 到 20。如果是 3 的倍数打印 "Fizz",5 的倍数打印 "Buzz",既是 3 又是 5 的倍数打印 "FizzBuzz",否则打印数字本身。
先自己试,实在想不出来再问 AI——但要让 AI 给你 Python 和 JS 两个版本。
小结
| 概念 | Python | JavaScript |
|---|---|---|
| 遍历 | for x in iterable: | for (const x of arr) |
| 范围循环 | for i in range(n): | for (let i = 0; i < n; i++) |
| 带索引遍历 | enumerate() | .forEach((val, i)) |
| break / continue | ✅ 一样 | ✅ 一样 |
记住:Python 的 for 像诗——简洁优雅。JS 的 for 像说明书——啰嗦但啥都能干。