2012-01-27 171 views
1

是否有可能在Python中打破循環,沒有break命令?
我在問這個問題,以便將其與C++ for循環進行比較,其中實際上每次都檢查條件在Python中打破循環

即有可能在C打破一個for循環++象下面這樣:

for(int i=0; i<100; i++) 
    i = 1000; // equal to break; 

是有可能做同樣的在Python?

for i in range(0,100): 
    i = 10000 // not working 
+0

Python的'for'更像是C++ 11的基於範圍的'for',在像原來的C ALL_ _not ++ 'for'。它遍歷一組項目。 – 2012-01-27 18:51:55

+1

可能的重複:http://stackoverflow.com/questions/8107285/why-doesnt-this-loop-break – 0605002 2012-01-27 18:54:04

+0

你用什麼教程學習Python? – 2012-01-27 18:59:59

回答

6

Python的「爲」是真正的「爲每個」,並用於與iterables(不循環的條件)。

相反,你可以只使用一個while語句,檢查在每次通過循環條件:

i = 0 
while i < 1000: 
    i = 1000 

另一種方法是使用與休息語句配對的if語句來終止循環:

for i in range(1000): 
    if i == 10: 
     break 
1

使用while循環用於此目的:

i = 0 
while i < 100: 
    i = 1000 
0

這將不起作用(正如你所注意到的)。原因在於,原則上,您正在迭代升序數列表的元素(無論這是否真的取決於您是否使用Python 2或3)。您可以隨時使用'break'關鍵字跳出一個循環,儘管使用它可能會導致難以遵循您的代碼。

1

不,for在Python中不起作用。 for遍歷列表(在本例中)或其他容器或迭代。 for i in range(0, 100)並不意味着「增加i,直到i大於或等於100」,這意味着「將i設置爲從這100個項目的列表中連續的項目直到列表被耗盡。」

如果i爲50,那麼無論您將i設置爲什麼,列表中的下一項仍然是51。無論如何,

break更好。