Java:一个int数组差异

时间:2013-09-25 23:03:40

标签: java arrays

我有一个x和y坐标数组,我将其传递给一个检查第一个差异的方法。当我将程序返回时,我的问题只显示前两个坐标的第一个区别。

        System.out.println(Arrays.toString(ardDifference));
        fin.close();
    }

    public static double Difference(double ardY[]) {
        double ardDifference[] = new double[5];
        for (int i = 0; i < 5; i++) {
            ardDifference[i] = ardY[i + 1] - ardY[i];
            return ardDifference[i];
        }
        return 0;
    }
}

3 个答案:

答案 0 :(得分:0)

因为你在循环中有一个返回,它会在第一次迭代中返回。 我觉得你不需要循环。如果你需要多个差异,那么将返回类型更改为double[]并返回ardDifference

for (int i = 0; i < 5; i++) {
        ardDifference[i] = ardY[i + 1] - ardY[i];
    }
            return ardDifference;

答案 1 :(得分:0)

//modify public static double Difference(double ardY[]) { 
public static double[] Difference(double ardY[]) {
    double ardDifference[] = new double[5];
    for (int i = 0; i < 5; i++) {
        ardDifference[i] = ardY[i + 1] - ardY[i];  
        // remove this line return ardDifference[i];       
    }
    //modify return 0;
    return ardDifference;
}

您目前只返回一个双倍,而不是整个数组

答案 2 :(得分:0)

您似乎没有返回整个数组,您应该更改为

// Return type  \/    is double[] instead of double
public static double[] Difference(double ardY[]) {
    double ardDifference[] = new double[5];
    for (int i = 0; i < 5; i++) {
        ardDifference[i] = ardY[i + 1] - ardY[i];
    }
    return ardDifference;//Returns entire array
}

您目前只返回一个双倍,而不是整个数组