数组未正确设置值

问题描述 投票:0回答:3

前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,0,0”时应打印“8,4,12,2,10,6”

java arrays
3个回答
2
投票

发生这种情况是因为count总是小于数组的大小(list.length),因此在第二个for循环中,你永远不会迭代直到数组结束。

将第二个for循环更改为迭代直到数组结尾,如下所示:

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

1
投票

你只穿过list的一部分,如for条件所述:

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

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

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

0
投票

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

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

 for(int k = 0; k<list.lengtb; k++)
© www.soinside.com 2019 - 2024. All rights reserved.