好的,所以我还在为我的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输出到数组,这是我发现的类似线程中的问题。这是我第一次使用二维数组,所以我打赌这里有一些我不明白的简单。任何帮助是极大的赞赏。谢谢!
答案 0 :(得分:0)
编译器返回此错误Cannot convert double into double[][]
因为您实际上返回的是单个双号而不是您定义为方法double[][]
的返回类型的双数组getNums()
相反,您可以通过仅返回myNums
数组来解决问题:
public double[][] getNums(){
return myNums;
}
如果您想通过使用数组索引i
和j
从数组中获取任何特定数字,也可以声明另一个方法:
public double getNumber(int i, int j){
return myNums[i][j];
}