使用以下代码,我不断收到以下错误消息:
int无法转换为int []
这是我的功能:
public static void populateTestScores(String[] names, int [][] scores)
{
for(int j = 0; j < scores.length; j++)
{
out.println("Enter Test Scores " + (j + 1) + ": ");
scores[j] = user.nextInt();
}
}
我该如何纠正?
答案 0 :(得分:1)
scores
是一个数组数组(或矩阵,如果你愿意的话)。
当您使用scores
循环遍历for
时,每次从scores
获取值时,您会得到什么?想一想 - 如果你有一个列表列表 - 其中的每个东西都是一个列表,对吗?
在编写代码时,您可能需要更改一个或两个以上的单词才能修复 - 这里有一些可能性:
scores
实际上只是一个整数列表 - 在这种情况下定义错误scores
已正确定义 - 在这种情况下,如果要访问其中的每个单元格,则需要嵌套循环答案 1 :(得分:0)
您正在尝试将整数(user.nextInt()
)分配给二维数组元素,即数组。这无法完成。
您需要将scores
转换为如此int[] scores
的单维数组,或者需要进行循环以将一系列整数检索到数组中(大致):
Scanner s = new Scanner(System.in);
List<Integer> ints = new ArrayList<>();
while (s.hasNextInt()) {
ints.add(s.nextInt());
System.out.print("another int ? ");
}
scores[j] = ints.toArray();