1

我最近摆弄了一些 for 循环,并试图弄清楚它的一些逻辑部分。虽然此时我远远超出了循环的水平,但有时在逻辑方面我仍然会有点奇怪。

但是,我发现 for 循环的增量值根据您是在循环内部还是外部而有所不同:

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

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

现在,我担心有一天我会到一个点,我将不得不使用计数器来做一些事情,而不仅仅是将它与条件匹配......

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

是否有任何数学/逻辑(或优雅)方法可以在循环终止后不使其变为 N+1,我在这里错过了?

4

2 回答 2

4

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

  1. 检查条件,如果成立则转到2,否则终止;
  2. 运行身体;
  3. 执行修改,执行1。

所以一句话,你不能。

另外,如果变量不去,循环如何终止N + 1?在这种情况下,循环条件始终成立,因此它将永远运行。

于 2013-05-18T15:28:27.003 回答
0

由于增量发生在检查之后,因此在循环中:

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

一旦 9 < 10,i增量和 9 被打印,而i现在有 10。

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

于 2013-05-18T15:28:32.880 回答