簡體   English   中英

'continue' 和 'break' 在 for 循環中的正確使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM