2014-02-27 51 views
-1

我不明白爲什麼在for循環中使用一個int - 如果它初始化爲0,並且設置循環爲小於數字的整數增加int - 如果每次執行循環時輸出整數 - 它不會達到您告訴它在for循環中增加的數字。爲什麼for循環未達到循環第二個條件中設置的數字?

我可能不是很清楚這裏措辭自己給你這樣理解,請參閱以下鏈接通過舉例的方式提供最好的幫助:

http://codepad.org/doPC6kuI

在鏈接的輸出是0,1,2 ,3,4 - 我意識到它是5個整數,但int我從0開始,但在輸出之前遞增,所以我不明白爲什麼第一個輸出是0而不是1使它爲1,2,3,4,5。

令人討厭的是,我無法合理化這個或者想出一個合理的解釋。

+0

因爲直到循環的主體完成時才執行update-clause。操作順序是1. init,2。測試(如果虛假,則中斷),3.體,4.更新,然後轉到(2)。如果沒有在for-construct中提供這些步驟,將會跳過這些步驟。 – WhozCraig

+0

請[edit]你的問題在這裏發佈相關的代碼,而不是在現場。這裏提出的所有問題應該是自包含的,包括所有相關信息。在其他地方提出問題的有意義的部分意味着,如果由於某種原因不在場外的位置,您的問題就不清楚了。 (在未來的讀者試圖解決他們的問題時,它也沒有用。)謝謝。 (我做**沒有** downvote你的問題,BTW。) –

回答

0

你自己說的:

你設置循環遞增的整數小於的人物

整型如果你這樣做,循環將只值少跑那麼極限,而不是極限本身。在每個循環之後,計數器遞增,並且之前檢查條件;所以第一次迭代爲0,第二次爲1,依此類推;那麼條件將在迭代之前停止,當它會是5.

如果您想包含限制,那麼您將循環,而它的小於或等於的限制。

1

for循環在你的榜樣的工作原理如下:

  1. 初始化i = 0
  2. 重複而i < 5是正確的:
    1. 執行for循環體
    2. 增量i

在每次迭代開始時檢查條件,並在每次迭代結束時進行增量。

所以首先將i初始化爲0,然後檢查0 < 5,這很好,所以我們開始第一次迭代。在迭代結束時,i增加到1,然後檢查1 < 5,我們開始第二次迭代,依此類推。在第5次迭代結束時,i增加到5,並且它檢查5 < 5,這不再是真實的,因此不再發生迭代。因此沒有發生迭代i的值爲5

+0

當你擊敗我這個..你有這麼多點! – RacerNerd

相關問題