问题跟踪数组,了解数组

时间:2019-10-02 18:32:41

标签: java arrays arraylist

我很难理解该数组的工作原理。我已经完成了System.out.print并意识到新数组的打印方式如下:{4,2,3,0,2},{4,2,3,0,3},{4,2,3, 0,0}。为什么只替换数组中的最后一位?每次分配新数字时,[value]都不会替换吗?

int []  = {4, 2, 3, 0, 1};
int count =0;
int value = arr[0];

while (arr[value] > 0){
count++;
arr[value] = arr[ arr[value] ];
}

System.out.println(count);

2 个答案:

答案 0 :(得分:0)

因为您的迭代器(表示为value)用4初始化,并且再也不会更改。 4是数组中的第五个元素。 看一下第3行

答案 1 :(得分:0)

您一次设置value,下面一行。它将始终设置为4,因为这是arr[0]的值。

int value = arr[0];

这里是对循环的较小重写,以说明它在做什么。我只用arr[value]代替了4

int[] arr = {4, 2, 3, 0, 1};
while (arr[4] > 0) {
    arr[4] = arr[arr[4]];
}