Python內層for循環continue和break出外層循環

遇到問題:

昨天在寫代碼的時候,遇到一個問題。就是當內層的for循環滿足條件的時候,如何結束本次內層循環 ,同時,跳過或者結束本次外層循環。後來,在網上就查閱了一些資料,自己整理了下。

1.for…else… 搭配break 結束雙重循環

代碼如下:

for i in range(1, 5):
    for j in range(2, 7):
        print(i, j)
        if j == 5:
            break
    else:
        continue
    break

運行結果:

1 2
1 3
1 4
1 5

上面代碼的邏輯是這樣的:

  • 當for …else… 循環正常執行結束的時候,就會運行else語句。但是當中途遇到break 的話,就不會執行else中的內容了。
  • 當內層for循環正常執行時,會執行else中的continue,此時會跳過外層的break語句,實現外層的循環,當內層出現break語句時,else語句忽略,跳出內層循環,順序執行外層的break語句,跳出外層循環

2.for…else…搭配continue 結束內循環&跳過本次外循環

示例代碼:

for i in range(1, 5):
    for j in range(2, 7):
        print(i, j)
        if j == 5:
            print("--------------")
            break
    else:
        continue

運行結果:(我專門打印了分割線,這樣看起來很清晰!)

1 2
1 3
1 4
1 5
<-------------->
2 2
2 3
2 4
2 5
<-------------->
3 2
3 3
3 4
3 5
<-------------->
4 2
4 3
4 4
4 5
<-------------->

上面代碼的邏輯也很簡單,看打印結果就很明瞭。就是當內層for循環滿足條件時,就結束本次內循環,同時進入下一輪外循環。

發佈了140 篇原創文章 · 獲贊 56 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章