有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从一个数组复制元素并将值移动到另一个数组

我希望我的程序将一个数组“排序”为两个不同的数组。意味着每个大于或等于500的值都将进入数组值2。每一个小于500的值都会进入数组值3

我的问题是,无论我尝试什么,它总是与显示的条件匹配的最后一个值

    for (int i = 0; i < values.length && i < noOfNumbers; i++)
        {

            if (values[i] >= 500)
            {
                for (int k = 0; k < numbersAbove500; k++)
                {

                    values3[k] = values[i];
                }
            }
                    else 
                    {
                        for (int j = 0; j < numbersAbove500; j++)
                        {
                        values2[j] = values[i];

                        }
                    }



        }

典型输出

您希望数组包含多少个数字?八,

这些是随机数

877 338 741 119 20 853 235 786

这些是大于或等于500的数字:

786786 786786

以下是500以下的数字:

235 235 235


共 (1) 个答案

  1. # 1 楼答案

    您只需要一个循环。你的内在循环毫无意义

    int j = 0;
    int k = 0;
    for (int i = 0; i < values.length && i < noOfNumbers; i++) {
        if (values[i] >= 500) {
            values3[k] = values[i];
            k++;
        } else {
            values2[j] = values[i];
            j++;
        }
    }