如果我有以下代碼,那麼整數「i」在它執行後會等於什麼? break語句之後循環是否增加?java中的for循環
int i = 0;
for(int foo = 0; foo < 10; foo++,i++){
break;
}
如果我有以下代碼,那麼整數「i」在它執行後會等於什麼? break語句之後循環是否增加?java中的for循環
int i = 0;
for(int foo = 0; foo < 10; foo++,i++){
break;
}
你爲什麼不把一個println看看...
我會說你什麼開始結束(即零 - 增量中的代碼後,會發生在for執行 - 因爲你突破它,它永遠不會增加)。
它打印0
,這正是你應該期望它打印。後增量子句在代碼塊之後執行,但是我們正在代碼塊的中間。所以後增量永遠不會執行。
你實際上可以在標準中查看這個。一種用破環,顧名思義,就是像一陣,跳轉,像這樣:
for(init; test; incr){
break;
}
是
init
while(test){
// do things
goto end
incr
}
end:
因此,自破總是執行,它永遠不會HTS增量部分,而且我也不會增加。
在for
循環完成一次迭代後,它會執行增量碼(在你的情況下爲foo++,i++
)。由於您的循環在完成一次迭代之前就中斷了,因此既不會增加foo
也不會增加i
。
你試過了嗎? http://ideone.com/ –
你爲什麼不執行它並打印出'i'? –
'break'在更新部分之前執行,所以'i'不會改變。 – NullUserException