java中的for循环
如果我有下面的代码,整数“I”在执行后将等于什么?循环是否在break语句之后递增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
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: