例如,这是不变的,还是每次传递都会改变?
for(int i = 0; i < InputStream.readInt(); i++)
答案 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