在java中无法将double转换为double [] []错误?

时间:2017-11-22 16:28:40

标签: java arrays matrix

好的,所以我还在为我的APCS课程开发一个矩阵项目,我目前正在试图弄清楚如何让用户输入矩阵的所有数字。现在我有一个setNums类,它使用已输入的行和列来抛出一堆输入框,然后将这些数字输入到二维数组中,如下所示:

public void setNums(String Matrixnum){
    for (int i = 1; i <= myRows; i++){
        for(int j = 1; j <= myColumns; j++){
            String StrNum = JOptionPane.showInputDialog(null, Matrixnum + " Row " + i + " Column " + j + " enter number:");
            myNums[i][j] = Double.parseDouble(StrNum);
        }
    }
}

然后我有一个getNums类,它应该遍历数组并逐个返回它们,当我稍后需要数字来添加,减去和乘以矩阵时:

public double[][] getNums(){
    for(int i = 1; i <= myRows; i++) {
        for(int j = 1; j <= myColumns; j++) {
            return myNums[i][j];
        }
    }
}

问题在于,当我尝试返回myNums时,它说“无法从double转换为double [] []”我不明白为什么代码认为它是double而不是double [] []。我正确地初始化了它:

private double[][] myNums;

...我确保我的parsedouble输出到数组,这是我发现的类似线程中的问题。这是我第一次使用二维数组,所以我打赌这里有一些我不明白的简单。任何帮助是极大的赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

编译器返回此错误Cannot convert double into double[][]

因为您实际上返回的是单个双号而不是您定义为方法double[][]的返回类型的双数组getNums()

相反,您可以通过仅返回myNums数组来解决问题:

public double[][] getNums(){
        return myNums;
}

如果您想通过使用数组索引ij从数组中获取任何特定数字,也可以声明另一个方法:

public double getNumber(int i, int j){
        return myNums[i][j];
}