簡體   English   中英

為什么while循環沒有結束?

[英]why the while loop does not end?

我有以下情況,

def gen(n):
    while n:
       if n > 10:
           n = 0
       n+=1
       yield n

根據我的直覺,當n設置為零時,循環應該停止。 然而,循環中的操作會在一個循環中重復。 這樣n to 10; n set to 0; 0 to 10 n to 10; n set to 0; 0 to 10 n to 10; n set to 0; 0 to 10

我真的不明白這個。

解決方案1:

def gen(n):
    while n:
       if n > 10:
           n = 0
           break
       n+=1 
       yield n

解決方案2:

def gen(n):
    while n:
       n+=1
       if n > 10:
           n = 0
       yield n

當 n 變為 0 時,您根本不會退出,因此它再次變為 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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