遇到問題:
昨天在寫代碼的時候,遇到一個問題。就是當內層的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循環滿足條件時,就結束本次內循環,同時進入下一輪外循環。