for循环的while部分是执行每次传递还是只执行一次java?

时间:2010-11-09 04:38:50

标签: java loops for-loop

例如,这是不变的,还是每次传递都会改变?

for(int i = 0; i < InputStream.readInt(); i++)

4 个答案:

答案 0 :(得分:14)

 for(int i = 0;                  // executed once
     i < InputStream.readInt();  // executed before each loop iteration
     i++                         // executed after each loop iteration
    ) {
    ....
 }

答案 1 :(得分:0)

每次执行。 <{1}}语法是

的糖
for

答案 2 :(得分:0)

第一部分在循环开始之前执行一次。在每个循环之前检查第二部分,如果为真,则执行循环,如果为false则循环中断。最后一部分在每次迭代后执行。

答案 3 :(得分:0)

有时控制流程图实际上是概念的最佳图形表示。

http://upload.wikimedia.org/wikipedia/commons/0/06/For-loop-diagram.png

我认为主要问题是:

i < InputStream.readInt(); 

每次循环迭代都会执行吗?是的,确实如此。

在这种情况下,它不会更改任何敏感变量,代码中唯一实际更改的变量是 i ,但每次迭代都会运行InputStream.readInt()进行比较,因此会运行readInt()再次InputStream

如下:

for (int i=0; i < xObj.addOne().parseInt(); i++)

(给定方法addOne返回一个更大的整数的字符串表示)

如果我像正常一样调用xObj.addOne(),我的“检查”会增加会增加的值吗? 是。并且它会继续增加到下一个循环迭代吗?

就像做

一样
 int x = 0;
 for (int i=0; i < ++x; i++);

这将永远不会终止,因为++ x总是大于x(也是i)

一个非常重要的例子呢?

int x = 6;
for (int i=0; i < x--; i++) {
    System.out.print(i+" ");
}

输出

0 1 2