HOME / 第 2 部分 · 核心概念与 GDScript 语法 / 第 14 课
MODULE 2 · 核心概念与 GDScript 语法
第 14 课 · 循环:for 与 while
🎯 本课学习目标
- 掌握 for 循环遍历数字与数组
- 掌握 while 条件循环
- 学会 break 和 continue
循环让计算机「重复干活」。本课掌握 for 和 while,以及跳出循环的 break/continue。
📖 详细教学步骤
for 循环:重复 N 次语法
for i in range(n) 会执行 n 次,i 从 0 到 n-1:
GDSCRIPT# 打印 0 到 4
for i in range(5):
print(i)
# 打印 3 到 7
for i in range(3, 8):
print(i)
# 步进 2:打印 0,2,4
for i in range(0, 6, 2):
print(i)
for 遍历数组/字典语法
遍历容器里的每个元素:
GDSCRIPTvar enemies = ["史莱姆", "骷髅", "恶龙"]
# 遍历每个元素
for e in enemies:
print(e)
# 带索引的遍历
for i in range(enemies.size()):
print(i, enemies[i])
# 字典遍历
var scores = {"玩家A": 100, "玩家B": 80}
for name in scores:
print(name, scores[name])
while 循环:满足条件才继续语法
当条件为真时一直循环:
GDSCRIPTvar hp = 100
while hp > 0:
print("受到伤害, HP=", hp)
hp -= 30
print("循环结束")
break 与 continue语法
break:立刻跳出整个循环continue:跳过本次,进入下一次
GDSCRIPTfor i in range(10):
if i == 3:
continue # 跳过 3
if i == 7:
break # 到 7 停止
print(i)
# 输出: 0 1 2 4 5 6
循环常见应用:生成敌人/子弹实战
循环最常用于批量生成物体(第 24 课会实战):
GDSCRIPTfor i in range(5):
var enemy = enemy_scene.instantiate()
add_child(enemy)
enemy.position = Vector2(i * 100, 200) # 横向排开
⚠️
while 死循环(卡死)?
while 的条件必须能在循环内改变,否则永远为真。例如上面 hp 每次减 30,最终会变负退出。若卡死,可按编辑器停止按钮(Shift+F12)。
⚠️
for i in range 和 for i in array 分不清?
range(n) 生成 0..n-1 的数字;直接 for e in array 遍历数组元素。需要索引时用 range(array.size())。
🧪 动手试一试
🏋️ 课后练习
用 for 循环计算 1 加到 100 的总和并 print;再用 while 模拟一个不断减少的生命值直到归零。
var sum=0; for i in range(1,101): sum += i; print(sum)。while hp>0: hp-=10
💡
数组下标从 0 开始:数组 ["a","b"] 中 [0] 是 "a"。
💡
需要提前结束循环时想想能否用 break 代替复杂条件。
🎓 本课小结
for 用于「知道次数」的重复与遍历,while 用于「按条件」的循环;break 跳出、continue 跳过;批量生成物体是循环的经典场景。