關于break/continue這兩個關鍵字在平常的使用程序中一直比較迷糊,好不容易理解了吧,過段時間不使用好像忘記了什么,這個問題也是很多初學者比較容易提及的問題,
【閱讀全文】

先通過一個簡單的單層回圈來了解一下這兩個關鍵字的使用,
print('=============單層回圈使用=============')
for n in range(10):
if n == 9:
print('退出當前回圈,當前n = ', n)
break
elif n == 4:
print('跳過當前回圈,當前n = ', n)
continue
print('當前n = ', n)
下面是執行以后的結果展示,
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
根據執行完成的結果可以看出,n = 4時,當前的n值沒有被列印,但是它還是往下執行了n = 5以后的列印,這就是continue的作用,
而執行到break的關鍵字時就直接退出for回圈了不會往下繼續執行,
同樣的方式,將單層回圈這次變成雙層回圈看一下效果,
print('=============雙層回圈使用=============')
for m in range(10):
for n in range(10):
if n == 9:
print('退出當前回圈,當前n = ', n)
break
elif n == 4:
print('跳過當前回圈,當前n = ', n)
continue
print('當前n = ', n)
if m == 8:
break
下面是執行以后的結果展示,
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
# 當前n = 0
# 當前n = 1
# 當前n = 2
# 當前n = 3
# 跳過當前回圈,當前n = 4
# 當前n = 5
# 當前n = 6
# 當前n = 7
# 當前n = 8
# 退出當前回圈,當前n = 9
根據結果,可以觀察到內部回圈的執行次數是9次,在執行到m = 8 時將回圈退出了正好m的值只回圈到了0-8正好是9次,
而內部回圈的break/continue只對內部回圈生效,因此得出了結論break/continue只對它對應的當前回圈生效,
那如果是三層回圈或者更多的層回圈呢,效果也是一樣的,
print('=============三層回圈使用=============')
for i in range(3):
for j in range(3):
for k in range(3):
if k in [1, 2, 3]:
continue
print('當前k = ', k)
if j in [1, 2, 3]:
continue
print('當前j = ', j)
if i in [2, 3]:
break
print('當前i = ', i)
同樣的只需要在其對應的當前回圈中加入break/continue的邏輯控制即可,
# =============三層回圈使用=============
# 當前k = 0
# 當前j = 0
# 當前k = 0
# 當前k = 0
# 當前i = 0
# 當前k = 0
# 當前j = 0
# 當前k = 0
# 當前k = 0
# 當前i = 1
# 當前k = 0
# 當前j = 0
# 當前k = 0
# 當前k = 0
執行完結果以后,i 值對應的回圈執行了0、1,j/k值對應的回圈只執行了0,所以再一次印證了break/continue只對它自己對應的當前回圈生效,

【往期精彩】
用python為心愛的人制作520照片墻,已成功做出效果圖!
兩個庫搞定python中參考javascript代碼塊/檔案...
python實作excel資料與mysql資料庫互通有無!
怎么用python做一個解壓縮小工具,以后再也不用下載各種格式的解壓縮軟體了...
python 實作超快視窗截圖,自動獲取當前活動視窗并展示截圖...
歡迎關注作者公眾號【Python 集中營】,專注于后端編程,每天更新技術干貨,不定時分享各類資料!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/480176.html
標籤:其他
下一篇:2.C++中的智能指標
