您好,登錄后才能下訂單哦!
在前面的介紹中,介紹了while循環,是通過while后面的條件表達式的值確定是否結束循環,不過在很多時候,需要在循環體內部之間跳出循環,這就需要使用到break語句。這個語句就是跳出循環,不在執行循環體。
x = 0
while x < 100:
if x == 5:
break;
print(x)
x += 1
輸出結果:
0
1
2
3
4
在上面的代碼中,while循環的條件語句是x < 100,而x變量的初始值是0,因此,如果在while循環中,每次循環都對x變量值加1,那么while循環會循環100次。不過在while循環中通過if語句進行了判斷,當x的值等于5時,執行break語句,就跳出循環,不在執行循環條件。所以這個while循環只會執行6次(x從0到5),當執行到最后一次的時候,執行了break語句退出while循環。而后面的語句都不會在去執行了。所以這段程序只會輸出0到4,共5個數字。
與break語句對應的還有另外一個continue語句。與break語句不同的是,continue語句用來終止本次循環,而break語句用來徹底退出循環。continue語句終止本次循環后,會立刻開始執行下一次循環。
x = 0
while x < 3:
if x == 1:
continue;
print(x)
x += 1 #這里為死循環
輸出結果:(死循環)
0
在上面的代碼中,當x等于1時,執行了continue語句,因此,if語句后面的所有語句都不會執行,while循環會繼續執行下一次循環。不過這里有個問題,當執行這段代碼時,會發現進入死循環了。所謂的死循環,是指while循環的條件表達式的值永遠為True,也就是循環永遠不會結束。死循環是在使用循環時經常容易犯的一個錯誤。
現在來分析一下這段代碼。如果要讓while循環正常結束,x必須大于或等于3,當x等于1時,執行了continue語句,所以if語句后面的所有語句在本次循環中都不會被執行了,但while循環最后一條語句是x += 1,這條語句用于在每次循環中將x變量的值加1.但這次沒有加1,所以下一次循環,x變量的值仍然是1,也就是說,if語句的條件永遠滿足,因此continue語句將永遠執行下去,所以x變量的值永遠不可能大于或等于3了。最終導致的后果就是while循環中的語句會永遠執行下去,也就是前面提到的死循環。
解決的方法也很簡單,只要保證執行continue語句之前讓變量x加1即可。或者將x += 1放到if語句的前面,或方到if語句中。
x = 0
while x < 3:
if x == 1:
x += 1 #需要在此處為x加1,否則將進入死循環
continue
print(x)
x += 1
break和continue語句同樣支持for循環,而且支持嵌套循環。不過要注意,如果在嵌套循環中使用break語句,那么只能退出當前層的循環,不能退出最外層的循環。在下面的實例3.8中會演示循環更復雜的使用方法。
[例 3.8] 本例除了演示while和for循環的基本用法以外,還在滿足一定條件的前提下,通過break語句終止了整個while和for循環,以及使用continue語句終止了while和for語句的本次循環,最后再while循環中嵌套了一個for循環,從而形成一個嵌套循環,在這個嵌套循環中,輸出了二維列表中的所有元素值。在Python語句中,嵌套循環可以嵌套任意多層的循環。
x = 0
while x < 100: #開始while循環
if x == 5: #當x == 5時終止循環
break;
print(x,end=" ")
x += 1
names = ["小黑","中白","大紅"] #定義一個列表變量
print("\nbreak語句在for循環中的應用")
for name in names: #對names列表進行迭代
if not name.startswith("小"): #遇到列表元素不是以"小"開頭的,就終止for循環
break;
print(name)
print("break語句在for循環中的應用")
for name in names: #對names列表進行迭代
#遇到列表元素以"小"開頭的,會跳過本次循環,繼續執行下一次循環
if name.startswith("小"):
continue;
print(name,end=" ")
print("\n嵌套循環")
arr1 = [1,2,3,4,5]
arr2 = ["小黑","中白","大紅"]
arr = [arr1,arr2] #定義一個二維列表變量
i = 0
while i < len(arr): #使用嵌套循環枚舉二維列表中的每一個元素值
for value in arr[i]:
print(value,end=" ") #輸出二維列表里的每一個元素值
i += 1
print()
輸出結果:
0 1 2 3 4
break語句在for循環中的應用
小黑
break語句在for循環中的應用
中白 大紅
嵌套循環
1 2 3 4 5
小黑 中白 大紅
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。