breakbreak 可以完全離開整個迴圈,例如從 3 開始 7 個 7 個一數,數到何時會超過 50 呢?
>>> for i in range(3, 100, 7):
>>>     if i > 50:
>>>         break
>>>     print(i)
>>> print("完成", i)
3
10
17
24
31
38
45
完成 52
一開始並不知道加到多少會停下來,因次設定一個迴圈讓他跑到 100,在途中檢查 i 的值,若是 i 大於 50 就離開迴圈,來到最後一行輸出 完成 52。
額外挑戰:試試看如何用
while迴圈來改寫以上程式?
有些時候會刻意去製造一個無限迴圈:
while True:
    pass
單純擺一個布林值 True 在 while 後面時,就能製造一個無限迴圈。將無限迴圈與 break 搭配是很常見的手法,例如寫一個簡單的購物車:
>>> apple = 0
>>> banana = 0
>>> while True:
>>>     n = int(input("請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >"))
>>>     if n == 1:
>>>         print("把一顆蘋果放進購物車")
>>>         apple += 1
>>>     elif n == 2:
>>>         print("把一根香蕉放進購物車")
>>>         banana += 1
>>>     else:
>>>         print("結算!")
>>>         break
>>>
>>> print(apple, "顆蘋果")
>>> print(banana, "根香蕉")
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >1
把一顆蘋果放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >2
把一根香蕉放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >1
把一顆蘋果放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >2
把一根香蕉放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >2
把一根香蕉放進購物車
請問你要買什麼? 1=蘋果 2=香蕉 3=離開 >3
結算!
2 顆蘋果
3 根香蕉
雖然也可以把 while 的條件設定為 n != 3,但是這樣的寫法會讓邏輯的呈現更為井然有序。
來寫一個猜數字遊戲吧!先手動設定一個變數 r 為你的祕密數字,接著不斷從使用者那邊接收輸入 n,如果 n 比 r 大,就輸出「太大了!」;如果 n 比 r 小,就輸出「太小了!」。最後使用者猜中數字時,使用 break 離開迴圈。
完整的程式碼放在此 Colab 裡面供各位參考。