詳解Python如何在多層循環(huán)中使用break/continue
關(guān)于break/continue這兩個(gè)關(guān)鍵字在平常的使用過(guò)程中一直比較迷糊。好不容易理解了吧,過(guò)段時(shí)間不使用好像忘記了什么。這個(gè)問(wèn)題也是很多初學(xué)者比較容易提及的問(wèn)題。
先通過(guò)一個(gè)簡(jiǎn)單的單層循環(huán)來(lái)了解一下這兩個(gè)關(guān)鍵字的使用。
print('=============單層循環(huán)使用=============') for n in range(10): if n == 9: print('退出當(dāng)前循環(huán),當(dāng)前n = ', n) break elif n == 4: print('跳過(guò)當(dāng)前循環(huán),當(dāng)前n = ', n) continue print('當(dāng)前n = ', n)
下面是執(zhí)行以后的結(jié)果展示。
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
根據(jù)執(zhí)行完成的結(jié)果可以看出,n = 4時(shí),當(dāng)前的n值沒(méi)有被打印,但是它還是往下執(zhí)行了n = 5以后的打印,這就是continue的作用。
而執(zhí)行到break的關(guān)鍵字時(shí)就直接退出for循環(huán)了不會(huì)往下繼續(xù)執(zhí)行。
同樣的方式,將單層循環(huán)這次變成雙層循環(huán)看一下效果。
print('=============雙層循環(huán)使用=============') for m in range(10): for n in range(10): if n == 9: print('退出當(dāng)前循環(huán),當(dāng)前n = ', n) break elif n == 4: print('跳過(guò)當(dāng)前循環(huán),當(dāng)前n = ', n) continue print('當(dāng)前n = ', n) if m == 8: break
下面是執(zhí)行以后的結(jié)果展示。
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
當(dāng)前n = 0
當(dāng)前n = 1
當(dāng)前n = 2
當(dāng)前n = 3
跳過(guò)當(dāng)前循環(huán),當(dāng)前n = 4
當(dāng)前n = 5
當(dāng)前n = 6
當(dāng)前n = 7
當(dāng)前n = 8
退出當(dāng)前循環(huán),當(dāng)前n = 9
根據(jù)結(jié)果,可以觀察到內(nèi)部循環(huán)的執(zhí)行次數(shù)是9次,在執(zhí)行到m = 8 時(shí)將循環(huán)退出了正好m的值只循環(huán)到了0-8正好是9次。
而內(nèi)部循環(huán)的break/continue只對(duì)內(nèi)部循環(huán)生效,因此得出了結(jié)論break/continue只對(duì)它對(duì)應(yīng)的當(dāng)前循環(huán)生效。
那如果是三層循環(huán)或者更多的層循環(huán)呢,效果也是一樣的。
print('=============三層循環(huán)使用=============') for i in range(3): for j in range(3): for k in range(3): if k in [1, 2, 3]: continue print('當(dāng)前k = ', k) if j in [1, 2, 3]: continue print('當(dāng)前j = ', j) if i in [2, 3]: break print('當(dāng)前i = ', i)
同樣的只需要在其對(duì)應(yīng)的當(dāng)前循環(huán)中加入break/continue的邏輯控制即可。
=============三層循環(huán)使用=============
當(dāng)前k = 0
當(dāng)前j = 0
當(dāng)前k = 0
當(dāng)前k = 0
當(dāng)前i = 0
當(dāng)前k = 0
當(dāng)前j = 0
當(dāng)前k = 0
當(dāng)前k = 0
當(dāng)前i = 1
當(dāng)前k = 0
當(dāng)前j = 0
當(dāng)前k = 0
當(dāng)前k = 0
執(zhí)行完結(jié)果以后,i 值對(duì)應(yīng)的循環(huán)執(zhí)行了0、1,j/k值對(duì)應(yīng)的循環(huán)只執(zhí)行了0。所以再一次印證了break/continue只對(duì)它自己對(duì)應(yīng)的當(dāng)前循環(huán)生效。
到此這篇關(guān)于詳解Python如何在多層循環(huán)中使用break/continue的文章就介紹到這了,更多相關(guān)Python多層循環(huán)使用break continue內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文帶你學(xué)會(huì)Python?Flask框架設(shè)置響應(yīng)頭
本篇博客我們將帶大家全面了解Python中Flask框架關(guān)于請(qǐng)求的相關(guān)設(shè)置的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2023-01-01Python3實(shí)現(xiàn)監(jiān)控新型冠狀病毒肺炎疫情的示例代碼
這篇文章主要介紹了Python3實(shí)現(xiàn)監(jiān)控新型冠狀病毒肺炎疫情的示例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python調(diào)用Matplotlib繪制振動(dòng)圖、箱型圖和提琴圖
Matplotlib作為用于數(shù)據(jù)可視化的Python軟件包,能夠繪制多種2D圖像,它使用簡(jiǎn)單、代碼清晰易懂,深受廣大技術(shù)愛好者喜愛。本文主要介紹了通過(guò)?Matplotlib繪制振動(dòng)圖、箱型圖、提琴圖,需要的朋友可以參考一下2021-12-12django 解決擴(kuò)展自帶User表遇到的問(wèn)題
這篇文章主要介紹了django 解決擴(kuò)展自帶User表遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05python使用requests模塊實(shí)現(xiàn)爬取電影天堂最新電影信息
這篇文章主要介紹了python使用requests模塊實(shí)現(xiàn)爬取電影天堂最新電影信息,本文通過(guò)實(shí)例代碼給大家介紹了str/list/tuple三者之間怎么相互轉(zhuǎn)換,需要的朋友可以參考下2019-04-04Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例
這篇文章主要介紹了Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例,以一個(gè)webpy站點(diǎn)在本機(jī)的兩個(gè)端口雙向通信下演示,需要的朋友可以參考下2016-06-06