java中的for循环

java中的for循环,java,loops,for-loop,iteration,Java,Loops,For Loop,Iteration,如果我有下面的代码,整数“I”在执行后将等于什么?循环是否在break语句之后递增 int i = 0; for(int foo = 0; foo < 10; foo++,i++){ break; } inti=0; for(intfoo=0;foo

如果我有下面的代码,整数“I”在执行后将等于什么?循环是否在break语句之后递增

int i = 0;
for(int foo = 0; foo < 10; foo++,i++){
    break;
}
inti=0;
for(intfoo=0;foo<10;foo++,i++){
打破
}

为什么不放一个println看看


我要说的是,它以您开始的内容结束(即,零——增量发生在for中的代码执行之后——因为您打破了它,它永远不会得到增量)。

它打印
0
,这正是您应该期望它打印的内容。POST增量子句是在代码块之后执行的,但是我们在代码块的中间部分中断。因此,post增量永远不会执行。

您实际上可以在标准中查找它。根据定义,带有中断的for循环类似于while,goto,因此:

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


因此,由于中断总是被执行的,它永远不会增加增量部分,而且foo和i都不会增加。

for的
循环完成一次迭代后,它会执行增量代码(在您的例子中,
foo++,i++
)。由于您的循环在完成一次迭代之前就中断了,
foo
i
都没有增量。

您尝试过吗?为什么不执行它并打印出
i
?在更新部分之前执行
break
,所以
i
不会改变。作业问题?看起来是这样。我觉得回答这个问题在道德上是不正确的。没有愚蠢的问题,但肯定有一个问题叫做懒惰的问题。你的答案应该是评论。每次我在这里问问题,我都会重新阅读,觉得自己像个白痴为什么人们会继续投票?起初我只是有我的讽刺评论,但现在我已经回答了。因为这显然是家庭作业,不鼓励回答。看见
init
while(test){
   // do things
   goto end
   incr
}
end: