🗺️ 计算机科学 4 CS4
第 26 关:复习
📚 🚀 🧠

第二单元大复习

Unit 2 Review

这节课我们要把之前学过的所有“大招”都串起来!
循环、数组、迭代、算法...

#嵌套循环 #数组迭代 #最值算法

一、While 循环 & 嵌套循环

🤡 无限循环 (While True)
像“今天这集动画片没播完,就一直重复”。
主循环 (Main Loop) 控制大节奏。
🎎 嵌套循环 (Nested Loop)
外层:遍历所有敌人。
内层:只要这个敌人还有血,就一直打。
攻击次数 ≈ 敌人数量 × 每个血量
while True:
    enemies = hero.findEnemies()
    index = 0
    
    # 外层:一个个看
    while index < len(enemies):
        enemy = enemies[index]
        
        # 内层:死磕到底
        while enemy.health > 0:
            hero.attack(enemy)
            
        index += 1

二、数组迭代 Array Iteration

List (列表/数组): 一排排好队的东西。

Index (索引): 像手指一样,从 0 指到最后。

Index 0123
Name YetuTabithaRashaMax
Type 👹👱‍♀️👹👱‍♂️
🐇 步长 (Step)
index += 2 可以隔一个跳一个!
(偶数 0,2,4 是敌人,奇数 1,3,5 是朋友)
index = 0

# 👇 标准迭代模板
while index < len(listName):
    item = listName[index]
    
    # 对 item 做点事...
    
    index += 1 # 或者 += 2

三、数组迭代 + 条件筛选

遍历整个“文具盒”,只把“橡皮擦”拿出来。

# 场景1:只捡金币
if coin.value == 3:
    hero.moveXY(coin.pos.x, coin.pos.y)
# 场景2:只打萨满
if enemy.type == "shaman":
    hero.attack(enemy)
关键符号:== (等于), != (不等于)

四、找最强 (Max) 与 找最弱 (Min)

🔥 找最大 (Max)

场景:最强敌人 (Health 大)

  • 初始值: 设得很小 (0)
  • 比较: > (大于)
maxVal = 0
if val > maxVal:
    maxVal = val
    best = item

❄️ 找最小 (Min)

场景:最近硬币 (Distance 小)

  • 初始值: 设得很大 (9999)
  • 比较: < (小于)
minVal = 9999
if val < minVal:
    minVal = val
    best = item

五、累加求和 Accumulator

💰 ➕ 📝

想象你有一个“金币记账本”。

一开始是 0,每看到一个硬币,就把它的价值 进去。

totalValue += coin.value
就是 total = total + value
def sumCoins(coins):
    total = 0 # 初始为0
    index = 0
    
    while index < len(coins):
        coin = coins[index]
        
        # 👇 累加器
        total += coin.value
        
        index += 1
        
    return total

六、把套路包装成“技能”

Abstraction (抽象)

把复杂的 while 循环藏在函数里。

以后想用的时候,直接喊它的名字,不用再写一遍循环了!

  • findStrongest(enemies)
  • sumCoins(coins)
🎁

Function

输入参数 (Parameter) →
神奇的黑盒子
→ 输出结果 (Return)

📜 单元 2 超级模板

1. 基本遍历
index = 0
while index < len(list):
    item = list[index]
    index += 1
2. 找最大 (Max)
best = None
maxVal = 0
if val > maxVal:
    best = item
3. 找最小 (Min)
best = None
minVal = 9999
if val < minVal:
    best = item

🎉 恭喜完成第二单元复习!