不同的for循环增量值

时间:2013-05-18 15:23:07

标签: java iteration increment

我最近摆弄了一些for循环,并试图绕过它的一些逻辑部分。虽然我在这一点上远远超出了循环的水平,但有时候我仍然倾向于有点奇怪。

但是,我发现for循环的增量值会有所不同,具体取决于你是在循环内部还是外部:

int i;
for(i = 0; i < 10; i++) {
   System.out.println(i); // 0 ... 9
}

System.out.println(i); // 10

现在,我担心有一天我会不得不使用计数器而不仅仅是将它与条件相匹配......

现在我想我明白为什么会这样;在条件失败并且循环死亡之后,我正在增加,但这真的应该发生吗?

在循环终止后,是否有任何数学/逻辑(或优雅)方式不能使其进入N + 1,我在这里缺少?

2 个答案:

答案 0 :(得分:4)

这就是for循环的工作原理:

  1. 检查条件,如果有,则转到2,否则终止;
  2. run body;
  3. 执行修改,转到1.
  4. 总之,你不能。

    另外,如果变量没有转到N + 1,循环如何终止?在这种情况下,循环条件总是成立,因此它将永远运行。

答案 1 :(得分:0)

由于检查后增量发生在循环中:

for(int i = 0; i < 10; i++)

一旦9&lt; 10,i增量,9打印,而i现在有10。

因此,System.out.println(i);给出10作为答案。