数组未正确设置值

时间:2019-01-17 17:20:31

标签: java arrays

在新数组中正确设置了前4个值。它与变量“ count”的设置不正确有关。该程序的目的是简单地获取偶数,并将其放入新数组中。

我加了4作为测试,这似乎很不错,但我认为这不是问题。

 int[] list = {8,5,4,11,12,2,1,3,10,6,7};

    int count = 0;
    int gr = 0;

    for(int n=0; n<list.length; n++)
    {
        if(list[n] % 2 == 0)
        {
            count++;
        }
    }
    int[] evn = new int[count];

    for(int k = 0; k<=count; k++)
    {
        if(list[k] % 2 == 0)
            evn[gr++] = list[k];
    }
 return evn;

当前,数组应打印“ 8,4,12,2,10,6”时打印“ 8,4,12,2,0,0”

3 个答案:

答案 0 :(得分:2)

之所以会这样,是因为count总是小于数组的大小{list.length),因此在第二个for循环中,您永远不会迭代直到数组的末尾。

更改第二个for循环以迭代到数组的末尾,如下所示:

for(int k = 0; k < list.length; k++)

答案 1 :(得分:1)

您仅遍历list的一部分,如for条件中所述:

for(int k = 0; k<=count; k++)
               ^--here--^

这是因为count的值小于原始数组的长度。更改此条件以遍历整个数组:

for(int k = 0; k<list.length; k++)

答案 2 :(得分:0)

要遍历整个list,请更改以下内容:

 for(int k = 0; k<=count; k++)

收件人

 for(int k = 0; k<list.lengtb; k++)