继续获取int无法转换为int []

时间:2017-09-14 16:01:22

标签: java

使用以下代码,我不断收到以下错误消息:

  

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();
    }
}

我该如何纠正?

2 个答案:

答案 0 :(得分:1)

scores是一个数组数组(或矩阵,如果你愿意的话)。

当您使用scores循环遍历for时,每次从scores获取值时,您会得到什么?想一想 - 如果你有一个列表列表 - 其中的每个东西都是一个列表,对吗?

在编写代码时,您可能需要更改一个或两个以上的单词才能修复 - 这里有一些可能性:

  1. scores实际上只是一个整数列表 - 在这种情况下定义错误
  2. 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();