簡體   English   中英

為什么“break”的行為與以下代碼中的行為一樣?

[英]Why does “break” behave like it does in the following piece of code?

count = 1
i = 3
while count != 1000:
     for k in range(2,i):
          if i%k == 0:       
              break
     else:
          print(i)
          count += 1
     i += 2        

在這段 python 代碼中,如果執行了break程序會跳轉到添加i += 2 ,難道不應該先執行else嗎?

鑒於else沒有縮進到if的同一級別,因此不會成為for循環的一部分。

來自 python 文檔 - https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clause-

與 C 中一樣,break 語句跳出最里面的 for 或 while 循環。

循環語句可能有一個 else 子句; 它在循環通過耗盡可迭代(with for)或條件變為假(with while)而終止時執行,但在循環由 break 語句終止時不執行。

因此, break語句跳過else子句,下一條要執行的語句是i += 2

break是在程序找到它想要的k時。
如果它不中斷, k將由於迭代而變大。
假設在第 10 次迭代中, i / k沒有余數,我們想要那個特定的k
如果 for 循環以break結束,
else語句被忽略,否則, else語句被啟動。

暫無
暫無

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

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