【Python自學】while迴圈的基本案例,從函數到迴圈:讓程式動起來的魔法開關
📘 Python 自學|while 迴圈
🔁 什麼是 while 迴圈?
程式最重要的兩件事,可以先簡單理解為:
- 函數:把一段程式包裝起來,方便重複使用。
- 迴圈:讓一段程式可以自動重複執行。
如果說「函數」是程式自動化的基礎結構,那麼「迴圈」就是讓程式持續運轉的引擎。
while 迴圈的核心概念是:
🧭 while 迴圈基本語法
Python 的 while 迴圈基本語法如下:
條件式回傳的結果會是布林值,也就是 True 或 False。
- 如果條件式是 True,就執行迴圈內的程式碼。
- 如果條件式是 False,就跳出迴圈。
⚙️ while 迴圈執行邏輯
while 迴圈會一直重複「檢查條件 → 執行程式 → 再檢查條件」這個流程。
- 先檢查條件式是否為 True。
- 若為 True,執行縮排內的程式碼。
- 執行完一圈後,再回頭檢查條件式。
- 若條件式變成 False,就跳出迴圈。
🧪 基本範例
下面這個範例會印出目前次數,從 1 印到 5。
輸出結果
邏輯推演
這段程式一開始設定 count = 1。
如果忘記更新 count,條件可能永遠成立,程式就會變成無限迴圈。
♾️ 無限迴圈
當 while 的條件永遠成立時,程式就會一直執行,這就是無限迴圈。
while True 本身不一定是錯誤。很多互動式程式也會刻意使用無限迴圈,再搭配 break 找到合適時機跳出。
使用 break 跳出無限迴圈
這段程式會一直要求使用者輸入內容。
只有當使用者輸入 q 時,程式才會執行 break 並跳出迴圈。
🛑 迴圈好朋友:break 與 continue
break 和 continue 是控制迴圈流程的重要關鍵字。
- break:直接結束整個迴圈。
- continue:跳過本次迴圈剩下的程式碼,直接進入下一圈。
輸出結果
程式邏輯說明
- 當 num = 1 時,印出 1。
- 當 num = 2 時,印出 2。
- 當 num = 3 時,執行 continue,所以不會印出 3。
- 當 num = 4 時,印出 4。
- 當 num = 5 時,執行 break,所以迴圈結束,不會印出 5。
| 關鍵字 | 作用 | 簡單記法 |
|---|---|---|
| continue | 跳過這一圈剩下的程式碼。 | 這次略過,下一圈繼續。 |
| break | 直接結束整個迴圈。 | 到此為止,收工。 |
📌 while 迴圈常見應用
while 迴圈常用在「不知道會重複幾次,但知道什麼時候該停止」的情境。
1. 輸入驗證:直到符合條件才結束
例如要求使用者輸入正確密碼,輸入錯誤就繼續要求輸入。
這段程式會一直執行,直到使用者輸入 1234 為止。
2. 重複運算直到條件結束
下面範例會計算 1 加到 10 的總和。
執行結果
🧮 經典數學案例:1 加到 100
數學中有一個很經典的故事:高斯小時候很快算出 1 + 2 + 3 + ... + 100。
他的想法是把頭尾配對:
這樣總共有 50 組,每組都是 101,所以答案是:
接著我們用 Python 的 while 迴圈來完成這個計算。
程式設計思路
- 設定 n = 1,代表從 1 開始。
- 設定 total = 0,用來累加總和。
- 每次把目前的 n 加進 total。
- 每次讓 n 增加 1。
- 當 n 超過 100 時,結束迴圈。
邏輯推演
執行結果
⚠️ 常見錯誤與陷阱
初學 while 迴圈時,最常遇到的問題通常和條件式、變數更新、縮排有關。
| 常見錯誤 | 原因 | 結果 |
|---|---|---|
| 忘記更新條件變數 | 例如忘記寫 count += 1。 | 可能造成無限迴圈。 |
| while 條件設錯 | 條件一開始就是 False。 | 迴圈永遠不會執行。 |
| 沒有正確縮排 | Python 依靠縮排判斷程式區塊。 | 出現 IndentationError。 |
不小心進入無限迴圈怎麼辦?
如果程式不小心進入無限迴圈,可以用以下方式停止:
- 命令列/終端機:按下 Ctrl + C,Python 會停止目前執行的程式。
- IDLE/VSCode/PyCharm:通常可以按紅色方形的 Stop 按鈕中止程式。
- 部分 IDE 快捷鍵:可能可以使用 Ctrl + F2,實際快捷鍵依編輯器而定。
🧭 while 與 for 的簡單比較
初學時常會搞混 while 和 for。可以先用下面的方式判斷。
| 迴圈 | 適合情境 | 例子 |
|---|---|---|
| while | 不知道會重複幾次,但知道停止條件。 | 輸入密碼直到正確。 |
| for | 知道要重複幾次,或要逐一處理資料。 | 印出 1 到 10、處理 list。 |
while 看「條件」;for 看「次數或資料」。
✅ 小結
while 迴圈是 Python 自動化的重要基礎。只要條件成立,它就會持續執行,非常適合輸入驗證、互動式程式與重複運算。
- while:當條件成立時,重複執行程式碼。
- 條件式:結果會是 True 或 False。
- count += 1:常用來更新條件變數,避免無限迴圈。
- while True:可建立無限迴圈,通常搭配 break。
- break:直接結束整個迴圈。
- continue:跳過本次迴圈剩下的程式碼。
- 輸入驗證:while 很適合用來要求使用者輸入正確資料。
- 累加運算:可以用 while 逐步把數字加總。
while 迴圈就是「只要條件還成立,就繼續做下去」。
留言
張貼留言