今日對話:不知道次數的迴圈怎麼寫?
我的 Prompt(提示詞):
「我已經學會 for 迴圈了。但如果我不知道要重複幾次,而是要『達成某個條件才停止』時,該怎麼寫?另外,常常聽到程式設計師說的 break、continue 和 pass 是什麼意思?請用白話文舉例說明。」
AI 導師這次給了一個非常生動的「闖關遊戲」比喻來解釋這些進階控制語法:
語法:while 條件:
運作邏輯:只要條件是 True,它就會一直重複執行裡面的動作,直到條件變成 False 為止。
新手大坑(無限迴圈):如果你忘記在迴圈裡面改變條件,它就會永遠跑下去,跑到電腦當機!遇到這種情況,記得在終端機狂按 Ctrl + 強制中斷程式。
break(砸破玻璃逃生):直接中斷整個迴圈,不管條件達成了沒,立刻跳出去。
continue(略過這回合):跳過這次迴圈剩下的程式碼,直接進入「下一回合」的條件檢查。
pass(先佔個位子):什麼事都不做。通常用在你想好了一個迴圈或 if 條件,但還沒想好裡面要寫什麼程式碼時,先寫個 pass 避免 Python 報錯(因為 Python 規定縮排裡面不能空著)。
為了更加了解 break 和 continue 的差別,我開了 day07.py檔案來實作,寫了一個結合 while True(故意製造無限迴圈)的回合制戰鬥模擬:
python
簡易戰鬥模擬系統
monster_hp = 40
round_num = 0
print("⚔️ 戰鬥開始!怪物血量:40")
#while True 會創造一個無限迴圈,必須靠裡面的 break 才能逃脫!
while True:
round_num += 1
print(f"\n--- 第 {round_num} 回合 ---")
模擬特殊事件:第 2 回合怪物防禦,跳過攻擊
if round_num == 2:
print("🛡️ 怪物開啟絕對防禦!本次攻擊無效。")
continue # 直接跳回迴圈開頭,不會執行下方的扣血動作
正常攻擊流程
damage = 15
monster_hp -= damage
print(f"🗡️ 造成 {damage} 點傷害,怪物剩餘血量:{monster_hp}")
模擬勝利條件:血量歸零
if monster_hp <= 0:
print("🎉 怪物被打倒了!戰鬥勝利!")
break # 達成條件,打破無限迴圈,結束戰鬥
print("遊戲結束,回到村莊。")
今天我們學會了用 while 處理未知次數的重複任務,並且掌握了 break與 continue這兩個精準控制程式節奏的法寶。