這個問題在這里已經有了答案: 如何打破多個回圈? (33 個答案) 48 分鐘前關閉。
我有兩個清單:
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
我想將 List2 添加到 List1 直到我們找到大于 10 的第一個總和,列印出總和并停止。
我的代碼是:
for val1 in list1:
for val2 in list2:
if val1 val2 > 10 :
print (val1, val2, val1 val2)
break
else:
continue
但結果是:
0 11 11
1 10 11
2 9 11
3 8 11
4 7 11
5 6 11
如何使回圈在第一個總和處停止?非常感謝。注意:我想維護 for...if 回圈結構。
uj5u.com熱心網友回復:
你的'break'陳述句只打破了第一個(編輯:最里面的)回圈。將它放入一個函式并回傳一個值,如下所示:
def foo(list1, list2):
for val1 in list1:
for val2 in list2:
if val1 val2 > 10 :
print (val1, val2, val1 val2)
return (val1 val2) # or whatever you are interested in
else:
continue
uj5u.com熱心網友回復:
break關鍵字用于只跳出一個回圈以跳出多個回圈_break boolean,最初使用變數是False
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
_break = False
for val1 in list1:
for val2 in list2:
if val1 val2 > 10 :
print (val1, val2, val1 val2)
_break = True
if _break:
break
if _break:
break
輸出:
0 11 11
uj5u.com熱心網友回復:
只需維護一個標志變數即可跳出外回圈。
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
flag=0
for val1 in list1:
for val2 in list2:
if val1 val2 > 10 :
print (val1, val2, val1 val2)
flag=1
break
else:
continue
if(flag):
break
如果在此之后您沒有任何要執行的內容,您可以使用 exit() 方法來終止代碼。
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
for val1 in list1:
for val2 in list2:
if val1 val2 > 10 :
print (val1, val2, val1 val2)
exit()
else:
continue
uj5u.com熱心網友回復:
它只是打破了內部回圈。如果你想同時打破兩個回圈,你可以使用標志。
list1 = [0,1,2,3,4,5]
list2 = [6,7,8,9,10,11]
flag = 0
for val1 in list1:
for val2 in list2:
if val1 val2 > 10 :
print(val1, val2, val1 val2)
flag = 1
break
else:
continue
if flag:
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452105.html
