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