Python進(jìn)階之路3.5.3跳出循環(huán)

3.5.3 跳出循環(huán)

在前面的介紹中,介紹了while循環(huán),是通過(guò)while后面的條件表達(dá)式的值確定是否結(jié)束循環(huán),不過(guò)在很多時(shí)候,需要在循環(huán)體內(nèi)部之間跳出循環(huán),這就需要使用到break語(yǔ)句。這個(gè)語(yǔ)句就是跳出循環(huán),不在執(zhí)行循環(huán)體。

創(chuàng)新互聯(lián)公司專(zhuān)注于中大型企業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)和網(wǎng)站改版、網(wǎng)站營(yíng)銷(xiāo)服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開(kāi)發(fā)的融合,累計(jì)客戶上千余家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專(zhuān)注成都品牌網(wǎng)站建設(shè)和互聯(lián)網(wǎng)程序開(kāi)發(fā),在前進(jìn)的路上,與客戶一起成長(zhǎng)!

x = 0
while x < 100:
    if x == 5:
        break;
    print(x)
    x += 1
輸出結(jié)果:
0
1
2
3
4

在上面的代碼中,while循環(huán)的條件語(yǔ)句是x < 100,而x變量的初始值是0,因此,如果在while循環(huán)中,每次循環(huán)都對(duì)x變量值加1,那么while循環(huán)會(huì)循環(huán)100次。不過(guò)在while循環(huán)中通過(guò)if語(yǔ)句進(jìn)行了判斷,當(dāng)x的值等于5時(shí),執(zhí)行break語(yǔ)句,就跳出循環(huán),不在執(zhí)行循環(huán)條件。所以這個(gè)while循環(huán)只會(huì)執(zhí)行6次(x從0到5),當(dāng)執(zhí)行到最后一次的時(shí)候,執(zhí)行了break語(yǔ)句退出while循環(huán)。而后面的語(yǔ)句都不會(huì)在去執(zhí)行了。所以這段程序只會(huì)輸出0到4,共5個(gè)數(shù)字。

與break語(yǔ)句對(duì)應(yīng)的還有另外一個(gè)continue語(yǔ)句。與break語(yǔ)句不同的是,continue語(yǔ)句用來(lái)終止本次循環(huán),而break語(yǔ)句用來(lái)徹底退出循環(huán)。continue語(yǔ)句終止本次循環(huán)后,會(huì)立刻開(kāi)始執(zhí)行下一次循環(huán)。

x = 0
while x < 3:
    if x == 1:
        continue;
    print(x)
    x += 1      #這里為死循環(huán)
輸出結(jié)果:(死循環(huán))
0

在上面的代碼中,當(dāng)x等于1時(shí),執(zhí)行了continue語(yǔ)句,因此,if語(yǔ)句后面的所有語(yǔ)句都不會(huì)執(zhí)行,while循環(huán)會(huì)繼續(xù)執(zhí)行下一次循環(huán)。不過(guò)這里有個(gè)問(wèn)題,當(dāng)執(zhí)行這段代碼時(shí),會(huì)發(fā)現(xiàn)進(jìn)入死循環(huán)了。所謂的死循環(huán),是指while循環(huán)的條件表達(dá)式的值永遠(yuǎn)為T(mén)rue,也就是循環(huán)永遠(yuǎn)不會(huì)結(jié)束。死循環(huán)是在使用循環(huán)時(shí)經(jīng)常容易犯的一個(gè)錯(cuò)誤。

現(xiàn)在來(lái)分析一下這段代碼。如果要讓while循環(huán)正常結(jié)束,x必須大于或等于3,當(dāng)x等于1時(shí),執(zhí)行了continue語(yǔ)句,所以if語(yǔ)句后面的所有語(yǔ)句在本次循環(huán)中都不會(huì)被執(zhí)行了,但while循環(huán)最后一條語(yǔ)句是x += 1,這條語(yǔ)句用于在每次循環(huán)中將x變量的值加1.但這次沒(méi)有加1,所以下一次循環(huán),x變量的值仍然是1,也就是說(shuō),if語(yǔ)句的條件永遠(yuǎn)滿足,因此continue語(yǔ)句將永遠(yuǎn)執(zhí)行下去,所以x變量的值永遠(yuǎn)不可能大于或等于3了。最終導(dǎo)致的后果就是while循環(huán)中的語(yǔ)句會(huì)永遠(yuǎn)執(zhí)行下去,也就是前面提到的死循環(huán)。

解決的方法也很簡(jiǎn)單,只要保證執(zhí)行continue語(yǔ)句之前讓變量x加1即可?;蛘邔 += 1放到if語(yǔ)句的前面,或方到if語(yǔ)句中。

x = 0
while x < 3:
    if x == 1:
        x += 1      #需要在此處為x加1,否則將進(jìn)入死循環(huán)
        continue
    print(x)
    x += 1

break和continue語(yǔ)句同樣支持for循環(huán),而且支持嵌套循環(huán)。不過(guò)要注意,如果在嵌套循環(huán)中使用break語(yǔ)句,那么只能退出當(dāng)前層的循環(huán),不能退出最外層的循環(huán)。在下面的實(shí)例3.8中會(huì)演示循環(huán)更復(fù)雜的使用方法。

[例 3.8] 本例除了演示while和for循環(huán)的基本用法以外,還在滿足一定條件的前提下,通過(guò)break語(yǔ)句終止了整個(gè)while和for循環(huán),以及使用continue語(yǔ)句終止了while和for語(yǔ)句的本次循環(huán),最后再while循環(huán)中嵌套了一個(gè)for循環(huán),從而形成一個(gè)嵌套循環(huán),在這個(gè)嵌套循環(huán)中,輸出了二維列表中的所有元素值。在Python語(yǔ)句中,嵌套循環(huán)可以嵌套任意多層的循環(huán)。

x = 0
while x < 100:                                  #開(kāi)始while循環(huán)
    if x == 5:                                  #當(dāng)x == 5時(shí)終止循環(huán)
        break;
    print(x,end=" ")
    x += 1

names = ["小黑","中白","大紅"]                    #定義一個(gè)列表變量
print("\nbreak語(yǔ)句在for循環(huán)中的應(yīng)用")
for name in names:                              #對(duì)names列表進(jìn)行迭代
    if not name.startswith("小"):               #遇到列表元素不是以"小"開(kāi)頭的,就終止for循環(huán)
        break;
    print(name)

print("break語(yǔ)句在for循環(huán)中的應(yīng)用")
for name in names:                              #對(duì)names列表進(jìn)行迭代
    #遇到列表元素以"小"開(kāi)頭的,會(huì)跳過(guò)本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)
    if name.startswith("小"):
        continue;
    print(name,end=" ")

print("\n嵌套循環(huán)")
arr1 = [1,2,3,4,5]
arr2 = ["小黑","中白","大紅"]
arr = [arr1,arr2]                               #定義一個(gè)二維列表變量
i = 0
while i < len(arr):                             #使用嵌套循環(huán)枚舉二維列表中的每一個(gè)元素值
    for value in arr[i]:
        print(value,end=" ")                    #輸出二維列表里的每一個(gè)元素值
    i += 1
    print()
輸出結(jié)果:
0 1 2 3 4 
break語(yǔ)句在for循環(huán)中的應(yīng)用
小黑
break語(yǔ)句在for循環(huán)中的應(yīng)用
中白 大紅 
嵌套循環(huán)
1 2 3 4 5 
小黑 中白 大紅 

網(wǎng)頁(yè)題目:Python進(jìn)階之路3.5.3跳出循環(huán)
新聞來(lái)源:http://muchs.cn/article24/geojje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、外貿(mào)建站自適應(yīng)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)