重複
一段程式跑很多次,而你只寫一次。 · ⏱ 約 25 分鐘
你會學到三件事
while 怎麼讓一段程式重複
- 一個迴圈一定要有的三樣東西
break 和 continue
開始之前
想印 1 到 5,用現在會的東西只能寫五行 print。
那印到 100 呢?印到使用者輸入的那個數呢?寫不出來。
一、while
n = 1
while n <= 5:
print(n)
n = n + 1
讀法:「只要 n <= 5 還成立,就一直做縮排裡面的事」。
它和 if 長得幾乎一樣,只差一個字——而行為差很多:
|
條件成立時 |
做完之後 |
if |
做一次 |
往下走 |
while |
做一次 |
回去再問一次條件 |
二、三樣東西,缺一不可
n = 1 # ① 起點 ——從哪裡開始
while n <= 5: # ② 條件 ——什麼時候還要繼續
print(n)
n = n + 1 # ③ 前進 ——每一圈讓它靠近終點
漏掉的通常是第三樣。
n = 1
while n <= 5:
print(n)
# ← 忘了 n = n + 1
n 永遠是 1,條件永遠成立,於是它永遠不會停——無窮迴圈。
每次寫完一個 while,回頭看一眼:
那個條件裡的東西,有沒有在迴圈裡被改?
⚠️ 而「前進」不一定是加一——n = n * 2、讀下一筆輸入都算。
只要那件事會讓條件遲早不成立就行。
三、累加
n = 1
total = 0
while n <= 5:
total = total + n
n = n + 1
print(total) # 15
⚠️ total 要宣告在迴圈外面。 放進去的話它每一圈都重新變成 0。
這個「在外面開一個變數、在裡面累加」的形狀,之後會一直出現。
四、break 和 continue
while True:
s = input()
if s == "":
break # 跳出整個迴圈
if s == "skip":
continue # 這一圈剩下的不做,回去再問一次條件
print(s)
|
做什麼 |
break |
整個迴圈結束 |
continue |
這一圈剩下的不做,繼續下一圈 |
while True: 是「永遠成立」——它一定要搭配 break,
否則就是刻意寫的無窮迴圈。
⚠️ continue 要小心:如果「前進」那一行在 continue 後面,
跳過它就等於沒有前進 → 無窮迴圈。
完成的樣子
n = 1
total = 0
while n <= 5:
total = total + n
n = n + 1
print(total)
換你了
一直讀數字,直到使用者輸入 0 為止,然後印出總和。
提示:while True: + 讀一個 + if n == 0: break + 累加。
這一課你做了什麼
- 你用
while 讓一段程式重複跑
- 你認得出迴圈的三樣東西:起點、條件、前進
- 你用
break 跳出、用 continue 跳過一圈
如果卡住了
| 你看到 |
多半是因為 |
| 一直印同一個東西停不下來 |
少了「前進」那一行 |
| 一次都沒跑 |
條件一開始就不成立 |
| 總和每次都一樣 |
total 宣告在迴圈裡面了 |
用了 continue 之後卡住 |
「前進」那一行被跳過了 |
在編輯器打開這一課 →