如何从多维数组的用户那里获取输入?

时间:2019-07-04 16:53:46

标签: java

我是Java的初学者,我想使用for循环从用户那里获取多维数组的输入。

我尝试了以下代码,但是它给出了一些线程错误。

Scanner input = new Scanner(System.in);
for(i=0;i<2;i++)
{
    for(j=0;j<2;j++)
    {
        a[i][j] = input.nextInt();
        //System.out.println(a[i][j]);
    }
}
}

Scanner input = new Scanner(System.in);
for(i=0;i<2;i++)
{
    for(j=0;j<2;j++)
    {
        int a[i][j] = input.nextInt();
        }
}
}

线程“主”中的异常java.lang.NullPointerException     在Practice.prac.main(prac.java:16)

3 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

Scanner sc = new Scanner(System.in);
System.out.print("Input total row : ");
int row = sc.nextInt();
System.out.print("Input total column : ");
int column = sc.nextInt();

int [][] matrix = new int[row][column];

答案 1 :(得分:0)

int i,j,a[][] = new int[2][2];

Scanner input = new Scanner(System.in);

for(i=0;i<2;i++)
{
    for(j=0;j<2;j++)
    {
        a[i][j] = input.nextInt();
        }
}
for(i=0;i<2;i++)
{
    System.out.print("\n");
    for(j=0;j<2;j++)
    {
        System.out.print(a[i][j] + "\t");
    }
}
}

答案 2 :(得分:0)

使用前需要初始化一个数组。因为数组的大小是固定的,所以可以这样:

int[][] a = new int[2][2];

之后,您的第一个循环似乎还可以

Scanner input = new Scanner(System.in);
for(i=0;i<2;i++)
{
    for(j=0;j<2;j++)
    {
        a[i][j] = input.nextInt();
        //System.out.println(a[i][j]);
    }
}
}

如果要纠正它,您可以这样做。

Scanner input = new Scanner(System.in);
    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a[i].length; j++) {
            a[i][j] = input.nextInt();
        }
    }
    input.close();

    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a[i].length; j++) {
            System.out.print(a[i][j] + "\t");
        }
        System.out.println();
    }

这是数组的错误用法:

int a[i][j] = input.nextInt();