-2

皆さんにちょっとした質問があります。彼女にアレイを教えようとしたり、それがどのように機能するかを理解しようとしたりしましたが、ちょっとした質問がありました:

int [] array1 = new int[10];

for (int index = 0; index < array1.length; index++) {
            array1[index]++;
            System.out.println(array1[index]);
        }

このforループで。要素ごとに配列が 2 ずつ増えるのはなぜですか? つまり、この質問の答えは 2,4,6,8,10,12,14,16,18,20 であることはわかっていますが、要素ごとに 2 ずつ増えるのはなぜですか?

0 から開始せず、毎回 1 ずつ増加するのはなぜですか?

編集:

ありがとうございます。これを投稿する前に、重要なことを忘れていました。誤解しました。

この for ループを投稿する前に、別の for ループがありました。

for (int index = 0; index < array1.length; index++) {
        array1[index] = 2 * index + 1;

    }

これで、ループが増加している理由がわかりました。御時間ありがとうございます。

4

3 に答える 3

9

1 増加する理由はありません。

あなたのコードをテストしたところ、出力は

1 1 1 1

すべての要素が 0 に初期化されてからインクリメントされるため

(また、初期化を行ったことに注意してください。それ以外の場合、変更はありません)

于 2012-12-11T15:43:39.383 に答える
1

私が走れば

    int[] array1 = new int[10];

    System.out.println("Before loop: "+Arrays.toString(array1));
    for (int index = 0; index < array1.length; index++) {
        array1[index]++;
        System.out.println(array1[index]);
    }
    System.out.println("After loop: "+Arrays.toString(array1));

それは印刷します

Before loop: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1
1
1
1
1
1
1
1
1
1
After loop: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

この質問の答えは次のとおりです。2,4,6,8,10,12,14,16,18,20

これは、質問を間違ってコピーしたことを示しています。;)

于 2012-12-11T15:45:46.470 に答える
0

を取り外します

array1[index]++; 

そしてそれはうまくいくはずです。

于 2012-12-11T15:47:25.493 に答える