2013-05-18 77 views
1

我最近摆弄了一些for循环,并试图让我的头部围绕它的一些逻辑部分。虽然在这一点上我远远超出了循环水平,但有时候我仍然倾向于有点怪异。不同的for循环增量值

然而,我发现,这取决于你是否是内部或外循环的for循环的增量值是不同的:

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

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

现在,恐怕有一天我会回来的地步,我将不得不使用的东西不仅仅是它匹配对病情越反...

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

是否有任何数学/逻辑(或文雅)办法不让它去N + 1圈结束后,我是在这里失踪?

回答

4

那是怎样一个for循环的工作原理:

  1. 检查车况,如果持有到2,否则终止;
  2. 奔跑身体;
  3. 执行修改,去1

那么一句话,你不能。

而且,怎么可能终止循环,如果变量没有去N + 1?在这种情况下,循环条件总是成立,所以它将永远运行。

+0

是的,没关系......多么笨拙的问题......对不起。 – Volatile

+0

@Volatile这实际上不是一个坏问题;理解这将防止相当多的错误,包括一些错误的错误。 –

0

由于增量的检查之后发生,在循环:

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

一次9 < 10,i增量和9被印刷而具有i 10现在。

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