- Python從入門到精通
- 明日科技
- 1497字
- 2019-12-06 14:16:29
4.4 break、continue和pass語句
當(dāng)循環(huán)條件一直滿足時(shí),程序?qū)?huì)一直執(zhí)行下去,就像一輛迷路的車,在某個(gè)地方不停地轉(zhuǎn)圓圈。如果希望在中間離開循環(huán),也就是for循環(huán)結(jié)束計(jì)數(shù)之前,或者while循環(huán)找到結(jié)束條件之前。有兩種方法可以做到:
使用continue語句直接跳到循環(huán)的下一次迭代。
使用break完全中止循環(huán)。
另外,在Python中還有一個(gè)用于保持程序結(jié)構(gòu)完整性的pass語句。下面將對(duì)break、continue和pass語句進(jìn)行詳細(xì)介紹。
4.4.1 break語句
break語句可以終止當(dāng)前的循環(huán),包括while和for在內(nèi)的所有控制語句。以獨(dú)自一人沿著操場(chǎng)跑步為例,原計(jì)劃跑10圈,可是在跑到第2圈的時(shí)候,遇到自己的女神或者男神,于是果斷停下來,中止跑步,這就相當(dāng)于使用了break語句提前中止了循環(huán)。break語句的語法比較簡(jiǎn)單,只需要在相應(yīng)的while或for語句中加入即可。
說明
break語句一般會(huì)結(jié)合if語句進(jìn)行搭配使用,表示在某種條件下跳出循環(huán)。如果使用嵌套循環(huán),break語句將跳出最內(nèi)層的循環(huán)。
在while語句中使用break語句的形式如下:

其中,條件表達(dá)式2用于判斷何時(shí)調(diào)用break語句跳出循環(huán)。在while語句中使用break語句的流程如圖4.21所示。
在for語句中使用break語句的形式如下:

其中,條件表達(dá)式用于判斷何時(shí)調(diào)用break語句跳出循環(huán)。在for語句中使用break語句的流程如圖4.22所示。
在實(shí)例4.6中,使用for循環(huán)語句解決了黃蓉難倒瑛姑的數(shù)學(xué)題。但是,在該實(shí)例中,整合for要從0一直循環(huán)到99,盡管在循環(huán)到23時(shí),已經(jīng)找到了符合要求的數(shù)。下面將實(shí)例4.6進(jìn)行改進(jìn),實(shí)現(xiàn)當(dāng)找到第一個(gè)符合條件的數(shù)后,就跳出循環(huán)。這樣可以提高程序的執(zhí)行效率。

圖4.21 在while語句中使用break語句的流程圖

圖4.22 在for語句中使用break語句的流程圖
【例4.8】 解決黃蓉難倒瑛姑的數(shù)學(xué)題(for循環(huán)改進(jìn)版)。(實(shí)例位置:資源包\TM\sl\04\08)
在實(shí)例4.7的最后一行代碼下方再添加一個(gè)break語句,即可以實(shí)現(xiàn)找到符合要求的數(shù)后直接退出for循環(huán)。修改后的代碼如下:

運(yùn)行程序,將顯示和實(shí)例4.5一樣的效果,也是如圖4.16所示的效果。如果想要看出實(shí)例4.8和實(shí)例4.6的區(qū)別,可以在上面第2行和第3行代碼之間添加“print(number)”語句輸出number的值。添加break語句后的執(zhí)行效果如圖4.23所示,未添加break語句時(shí)的執(zhí)行效果如圖4.24所示。

圖4.23 添加break語句時(shí)的效果

圖4.24 未添加break語句時(shí)的效果
4.4.2 continue語句
continue語句的作用沒有break語句強(qiáng)大,它只能中止本次循環(huán)而提前進(jìn)入下一次循環(huán)中。仍然以獨(dú)自一人沿著操場(chǎng)跑步為例,原計(jì)劃跑步10圈。當(dāng)跑到第2圈的時(shí)候,遇到自己的女神或者男神也在跑步,于是果斷停下來,跑回起點(diǎn)等待,制造一次完美邂逅,然后從第3圈開始繼續(xù)。
continue語句的語法比較簡(jiǎn)單,只需要在相應(yīng)的while或for語句中加入即可。
說明
continue語句一般會(huì)結(jié)合if語句進(jìn)行搭配使用,表示在某種條件下,跳過當(dāng)前循環(huán)的剩余語句,然后繼續(xù)進(jìn)行下一輪循環(huán)。如果使用嵌套循環(huán),continue語句將只跳過最內(nèi)層循環(huán)中的剩余語句。
在while語句中使用continue語句的形式如下:

其中,條件表達(dá)式2用于判斷何時(shí)調(diào)用continue語句跳出循環(huán)。在while語句中使用continue語句的流程圖如圖4.25所示。

圖4.25 在while語句中使用continue語句的流程圖
在for語句中使用continue語句的形式如下:

其中,條件表達(dá)式用于判斷何時(shí)調(diào)用continue語句跳出循環(huán)。在for語句中使用continue語句的流程如圖4.26所示。

圖4.26 在for語句中使用continue語句的流程圖
【例4.9】 計(jì)算100以內(nèi)所有偶數(shù)的和。(實(shí)例位置:資源包\TM\sl\04\09)
通過在for循環(huán)中使用continue語句實(shí)現(xiàn)1到100(不包括100)的偶數(shù)和,代碼如下:

說明
第3行代碼實(shí)現(xiàn)的是:當(dāng)所判斷的數(shù)字是奇數(shù)時(shí),會(huì)執(zhí)行第4行的continue語句,跳過后面的累加操作,直接進(jìn)入下一次循環(huán)。
程序運(yùn)行結(jié)果如下:
1到100之間(不包括100)的偶數(shù)和為:2450
4.4.3 pass語句
在Python中還有一個(gè)pass語句,表示空語句。它不做任何事情,一般起到占位作用。例如,在應(yīng)用for循環(huán)輸出1~10(不包括10)的偶數(shù)時(shí),在不是偶數(shù)時(shí),應(yīng)用pass語句占個(gè)位置,方便以后對(duì)不是偶數(shù)的數(shù)進(jìn)行處理。代碼如下:

程序運(yùn)行結(jié)果如下:
2 4 6 8
- ServiceNow Application Development
- 從零開始:數(shù)字圖像處理的編程基礎(chǔ)與應(yīng)用
- Docker進(jìn)階與實(shí)戰(zhàn)
- Julia Cookbook
- C# 8.0核心技術(shù)指南(原書第8版)
- NGINX Cookbook
- 現(xiàn)代C++編程實(shí)戰(zhàn):132個(gè)核心技巧示例(原書第2版)
- Mastering HTML5 Forms
- JQuery風(fēng)暴:完美用戶體驗(yàn)
- Access數(shù)據(jù)庫應(yīng)用教程(2010版)
- Java多線程并發(fā)體系實(shí)戰(zhàn)(微課視頻版)
- 算法超簡(jiǎn)單:趣味游戲帶你輕松入門與實(shí)踐
- Puppet 5 Beginner's Guide(Third Edition)
- 從零開始學(xué)UI設(shè)計(jì)·基礎(chǔ)篇
- AI輔助編程Python實(shí)戰(zhàn):基于GitHub Copilot和ChatGPT