迴圈的 break、continue
有時候,迴圈的執行會遇到某個條件不符合時,後續的指令就沒有必要再執行的情況,就可以搭配
break 或
continue 來控制迴圈。
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 次