2011-11-17 86 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