迴圈的 break、continue



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

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

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

例 1
1
2
3
4
5
6
7
8
9
10
11
12
13
  
# 列出 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  
# 列出 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  
# 列出 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  
# 列出 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
1
2
3
4
5
6
7
8
9
10
  
x = 1
 
while True:
    print('迴圈第 '+str(x)+' 次')
    x = x + 1
 
    if x>1:
        break
  
執行結果:
  
迴圈第 1 次
  






⇑ 目錄 ⇑