-7

ループカウンターを5まで上げる単純なforループがありますi

 int i;
 double n = 1 / 2; 
 for (i = 2; i <= 5; i++) {
    n = n + 1.0 / i; 
 }
 System.out.print(i);

したがって、ループが終了した後、カウンターの値は 5 になると思います。しかし、値は 6、ニット 5 です。なぜですか?

ありがとう

4

3 に答える 3

2

ループのようi++にi 値をインクリメントしているためfor{..}

for (i = 2; i <= 5; i++)
                     ^ here

条件チェック後のforループでは本体部分が実行されます

その後、インクリメントまたはデクリメントが行われます

プロセスは

               <----
     1step  2step  4step
for (i = 2; i <= 5; i++){
  /*body part*/
   3step
}

4 番目のステップの後、2 番目のステップ、つまり条件部分のチェックに移動します。

iそのため、値を次のように出力します

6
于 2013-10-05T10:32:05.507 に答える
0

for ループ:

for (i = 2; i <= 5; i++) {
    // code

}

これには条件がi <= 5あり、条件はfalseいつi = 6ループが壊れるかであり、印刷行に移動します。

初めてのプログラミング経験を思い出させてくれてありがとう。コードを書いて、a = 5それを印刷してコンソールに何が表示されるかを確認したときのことです。:)

于 2013-10-05T10:34:51.630 に答える
0

と言うのi++と同じi = i + 1です。この場合、 を使用++iして同じ結果を得ることもできます。

于 2013-10-05T10:37:42.047 に答える