【发布时间】:2017-11-22 16:28:40
【问题描述】:
好的,所以我仍在为我的 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 正在输出到数组,这是我发现的类似线程中的问题。这是我第一次使用二维数组,所以我敢打赌这里有一些我不明白的简单的东西。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
您正在尝试返回
double,因为您正在返回double[][]的元素 -
public double[][] getNums(){如果要返回单个数字,则返回类型不应是数组:public double getNums(){ -
您需要返回整个数组,而不是尝试返回数组的单个元素。所以删除2个for循环并返回
return myNums; -
您似乎误解了数组的工作方式。
myNums[i][j]是存储在索引 i 和 j 处的double,而不是整个数组,即myNums。 -
在其他新闻中,
getNums()方法无法按您想要的方式工作。它不会“一次一个”地返回数字。它返回位置myNums[1][1]的第一个数字,然后退出。