官术网_书友最值得收藏!

  • 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
主站蜘蛛池模板: 万全县| 吉隆县| 承德市| 罗田县| 竹山县| 克什克腾旗| 阳泉市| 永宁县| 托克托县| 芷江| 呈贡县| 彭水| 洛浦县| 东乌| 东港市| 安丘市| 石景山区| 邵武市| 昭觉县| 黑水县| 马关县| 鹤壁市| 社旗县| 定南县| 富阳市| 抚松县| 宁强县| 永丰县| 葵青区| 尉氏县| 那坡县| 淳化县| 铁岭市| 扎兰屯市| 那坡县| 安宁市| 武定县| 巴南区| 福海县| 奇台县| 北碚区|