我是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)
答案 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();