2011-11-17 91 views
0

如果我有以下代碼,那麼整數「i」在它執行後會等於什麼? break語句之後循環是否增加?java中的for循環

int i = 0; 
for(int foo = 0; foo < 10; foo++,i++){ 
    break; 
} 
+8

你試過了嗎? http://ideone.com/ –

+1

你爲什麼不執行它並打印出'i'? –

+2

'break'在更新部分之前執行,所以'i'不會改變。 – NullUserException

回答

3

你爲什麼不把一個println看看...

我會說你什麼開始結束(即零 - 增量中的代碼後,會發生在for執行 - 因爲你突破它,它永遠不會增加)。

+4

您的回答應該是評論。 –

+2

每次我在這裏問一個問題時,我都會在稍後閱讀,感覺就像一個白癡。 :P –

+0

在那裏,我回答了。 – AHungerArtist

0

它打印0,這正是你應該期望它打印。後增量子句在代碼塊之後執行,但是我們正在代碼塊的中間。所以後增量永遠不會執行。

4

你實際上可以在標準中查看這個。一種用破環,顧名思義,就是像一陣,跳轉,像這樣:

for(init; test; incr){ 
    break; 
} 

init 
while(test){ 
    // do things 
    goto end 
    incr 
} 
end: 

因此,自破總是執行,它永遠不會HTS增量部分,而且我也不會增加。

5

for循環完成一次迭代後,它會執行增量碼(在你的情況下爲foo++,i++)。由於您的循環在完成一次迭代之前就中斷了,因此既不會增加foo也不會增加i