[英]Proper usage of 'continue' and 'break' in for loop
我試圖編寫一個 for 循環,其中有一個“繼續”和一個“中斷”。 代碼如下
b = 0
for a in range(1,20):
if a == 1:
b =1
print b
elif a == 2:
b = 2
print b
elif a == 3:
b = 3
print b
else:
continue
a +=1
print "a = (%d) " % (a)
if a ==10:
print "a = (%d) " % (a)
break
我想做的是循環a
並使用a
作為條件來確定b
的值。 此外,我不希望a
達到 20,因此我添加了另一個條件if a == 10
以提前結束循環。 但是,打印出來的結果並不完全是我想要的:
1
a = (2)
2
a = (3)
3
a = (4)
這意味着
if a ==10:
print "a = (%d) " % (a)
break
完全錯過了。 我不知道我寫的哪一行是錯誤的。 謝謝!
這部分代碼
if a ==10:
print "a = (%d) " % (a)
break
由於為 continue 語句指定的條件,永遠不會執行。 換句話說,您是說當 a 不等於 1、2 或 3 時,循環會返回執行,這意味着它永遠不會在 continue 語句之后到達下一行。 所以,當 a 等於 10 時,它會滿足 continue 語句的條件並回到循環繼續執行。
如果你想在 a 等於 10 時打印出來,你可能不需要 continue 語句。 試試這個代碼:
b = 0
for a in range(1,20):
if a == 1:
b =1
print b
elif a == 2:
b = 2
print b
elif a == 3:
b = 3
print b
a +=1
print "a = (%d) " % (a)
if a == 10:
print "a = (%d) " % (a)
你可以通過這個資源http://www.tutorialspoint.com/python/python_loop_control.htm更好地理解 python 的循環結構
您寫的不正確的行是 continue 語句。 它的作用是停止當前迭代並帶您進入循環的下一次迭代。根據您的問題陳述,不需要 continue 語句。嘗試刪除 continue 語句,它將運行。 下面是示例代碼:
for a in range(1,20):
if a == 1:
b =1
print b
elif a == 2:
b = 2
print b
elif a == 3:
b = 3
print b
else:
a +=1
print "a = (%d) " % (a)
if a ==10:
print "a = (%d) " % (a)
break
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.