迴圈的 break、continue



有時候,迴圈的執行會遇到某個條件不符合時,後續的指令就沒有必要再執行的情況,就可以搭配 breakcontinue 來控制迴圈。

break 及 continue 通常會搭配「條件判斷」使用。

break強制離開迴圈,不再執行

例 1
 
# 列出 1 ~ 10 的數字
# 並判斷該數字是否偶數

for x in range(1,11):
    print('x = '+str(x))
    if x==7:
        # 當 x 為 7 時,就離開迴圈
        # 所以,實際上這個迴圈只會列出 1 ~ 7
        break
    if x%2==0:
        print(str(x)+' 是偶數')
 
執行結果:
 
x = 1
x = 2
2 是偶數
x = 3
x = 4
4 是偶數
x = 5
x = 6
6 是偶數
x = 7
 


continue 則是 回到迴圈的開始

例 2
 
# 列出 1 ~ 10 的數字
# 並判斷該數字是否為 2 或 4 的倍數
# 因為 4 = 2 * 2
# 4 的倍數必定也是 2 的倍數
# 所以當數字不是 2 的倍數時
# 後面的指令也沒有必要執行、判斷了

for x in range(1,11):
    print('x = '+str(x))

    # 當數字是 2 的倍數時, 餘數必為 0
    if x%2!=0:
        # 餘數不為 0 時, 必不是 2 的倍數
        continue    # 程式回到第 9 行
    
    print(str(x)+' 是 2 的倍數')

    if x%4==0:
        print(str(x)+' 也是 4 的倍數')
 
執行結果:
 
x = 1
x = 2
2 是 2 的倍數
x = 3
x = 4
4 是 2 的倍數
4 也是 4 的倍數
x = 5
x = 6
6 是 2 的倍數
x = 7
x = 8
8 是 2 的倍數
8 也是 4 的倍數
x = 9
x = 10
10 是 2 的倍數
 


例 3
 
# 列出 1 ~ 10 的數字
# 並判斷該數字是否偶數

x = 1

while x<11:
    print('x = '+str(x))
    if x==7:
        # 當 x 為 7 時,就離開迴圈
        # 所以,實際上這個迴圈只會列出 1 ~ 7
        break

    if x%2==0:
        print(str(x)+' 是偶數')

    x = x + 1
 


例 4
 
# 列出 1 ~ 10 的數字
# 並判斷該數字是否為 2 或 4 的倍數
# 因為 4 = 2 * 2
# 4 的倍數必定也是 2 的倍數
# 所以當數字不是 2 的倍數時
# 後面的指令也沒有必要執行、判斷了

x = 0

while x<10:
    x = x + 1
    print('x = '+str(x))

    # 當數字是 2 的倍數時, 餘數必為 0
    if x%2!=0:
        # 餘數不為 0 時, 必不是 2 的倍數
        continue    # 程式回到第 9 行
    
    print(str(x)+' 是 2 的倍數')

    if x%4==0:
        print(str(x)+' 也是 4 的倍數')
 



while 迴圈的條件判斷在一開始,所以有可能在一開始就條件不成立,導致迴圈一次也不會執行,例如前面小節的例 4。

如果希望迴圈至少執行一次呢?可以搭配 if 使用,將條件判斷放在迴圈的最末。

例 5
 
x = 1

while True:
    print('迴圈第 '+str(x)+' 次')
    x = x + 1

    if x>1:
        break
 
執行結果:
 
迴圈第 1 次
 






⇑ 目錄 ⇑