1

我有一个 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;
    }
}
4

3 回答 3

0

因为您在循环中有一个返回,所以它在第一次迭代本身期间返回。我觉得您在这里不需要循环。或者如果您需要多个差异,则将返回类型更改为double[]并返回ardDifference

for (int i = 0; i < 5; i++) {
        ardDifference[i] = ardY[i + 1] - ardY[i];
    }
            return ardDifference;
于 2013-09-25T23:10:13.087 回答
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;
}

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

于 2013-09-25T23:11:44.273 回答
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
}

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

于 2013-09-25T23:12:15.167 回答