-3

for ループがどのように機能するのかよくわかりませんが、簡単に説明してもらえますか?

たとえば、このコード:

int count;

for(count=1;count <10; count = count+2)
System.out.print((3*count) + " " );

答えは:3 9 15 21 27ですが、どこ9から来たのですか?

最初のカウントが実行されると仮定しましょう so 1+2=3, so 3*1 = 3.

を取り、3それを で合計し、2それを で乗算すること を想定していません3か?

5*3 = 159どこから来たのですか?

4

7 に答える 7

3

出力される数値は、変数には影響しませんcount

count は 1 から始まり、毎回 2 ずつ増加しているため、count = count+21,3,5,7 になります。

次に、これに 3 を掛けて、見ている出力を得ます。

1 * 3 = 3
3 * 3 = 9
5 * 3 = 15

期待どおりの出力を得るにはcount、ループ内で変更する必要があります。

for(count=1;count <10; count = count+2)
count = count*3;
System.out.print((count) + " " );

これは 2 番目の数値として 15 を出力し、forloop を終了するために 10 よりも大きくなるため停止します。

于 2013-03-11T04:14:40.417 に答える
3

に由来し3 * 3ます。 countで始まり、最初のループの後にviaに1インクリメントされます。これを行った場合、説明している動作が発生するはずです。3count = count + 2

for (/*snip*/) {
    count = 3 * count;
}

これにより、ループの 2 回目の繰り返しで 15 が出力されます。

于 2013-03-11T04:15:07.540 に答える
3

セミコロンで区切られた for ループの 3 つの部分は、初期代入 (ループに入る直前に実行される)、条件 (ループに入る前に反復ごとにチェックされる)、および更新 (これは反復ごとに実行されます)。したがって、次の表があります

count  printed  condition
 1      3         1 < 10
 3      9         3 < 10
 5     15         5 < 10
 7     21         7 < 10
 9     27         9 < 10
11     --        11 < 10

これにより、9 がどこから来たのかが明確になります。

于 2013-03-11T04:19:39.883 に答える
1

3*countコードは に代入しませんcount。単に値を出力します。

ループが実行されると、count の値は {1, 3, 5, 7, 9} になります。反復ごとに、 の値が3*countstdout に出力されますcount、変更されません


一度に次の手順を実行します。

  1. count1 に初期化されます。
  2. 3*count + " "stdout に出力されます。(あなたは 3 を得て、count まだ 1 の値を持っています)
  3. countは 2 ずつ増加し、count3 に設定されます。
  4. 3*count + " "stdout に出力されます。(count現在は値が 3 であるため、9 になります。これcountも変更されません)
  5. countは 2 ずつ増加し、count5 に設定されます。
  6. 出力 15countはまだ変更されていません。
  7. count再び 2 ずつインクリメントされ、count7 に設定されます。
  8. 出力 21。
  9. 9 に増加countします。
  10. 出力 27。
  11. 11 に増加countします。
  12. テストcount < 10が失敗したため、ループから脱落します。

この動作を次のスニペットと比較してください。期待どおりの動作をする可能性があります。

int count;

for(count=1;count <10; count = count+2)
{
    count = 3*count;
    System.out.print((count) + " " );
}

ただしcount、17 は 10 より大きいため、このループは {1, 5} の値に対してのみ実行されます。

于 2013-03-11T04:15:25.540 に答える
1

ループ内でカウントを出力すると、何が起こっているかがわかります。

System.out.print("count: " + count + " (3*count): " + 3*count + "\n");
于 2013-03-11T04:16:11.717 に答える
1

count は 1 から始まり、{1,3,5,7,9} の値になります。このコードを実行すると、何が起こっているかを自分で確認できます。

for(count=1;count <10; count = count+2) {
    System.out.println("For count = " + count + ", Result: " + (3*count) + " " );
}

count は、ループが最初の反復を完了するまで初めてインクリメントされません。

于 2013-03-11T04:16:41.883 に答える
0
count
1     *3=
3     *3=
5     *3=
7     *3=
9     *3=
于 2013-03-11T04:16:13.220 に答える