-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 回答