2013-05-18 97 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的答案。