我写了一个类,它有一个基于用户输入增长的二维数组,允许用户在数组中输入数字。用户可以输入2 2
作为大小,2 4 5 4
输入数字它将打印出来像这样
2 2
2 2
直到我输入数组大小7 1
,7行和1列才有效。我得到一个例外
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Assignment7.main(Assignment7.java:55)
我不明白为什么
import java.util.Scanner;
public class Assignment7
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print(" ");
int [][] nums = new int[scan.nextInt()][scan.nextInt()];
System.out.print(" ");
for (int i = 0; i < nums.length; ++i)
{
for (int j = 0; j < nums.length; ++j)
{
nums[i][j] = scan.nextInt();
}
}
for (int i = 0; i < nums.length; ++i)
{
System.out.print("\n");
for (int j = 0; j < nums.length; ++j)
{
System.out.print(nums[i][j]);
}
}
}
}
答案 0 :(得分:3)
第二维的长度应为nums[i].length
,注意:(您的示例为i
)
答案 1 :(得分:1)
对于你的内部循环,你使用的是外部数组的大小:
for (int i = 0; i < nums.length; ++i)
{
for (int j = 0; j < nums.length; ++j)
这应该是:
for (int i = 0; i < nums.length; ++i)
{
for (int j = 0; j < nums[i].length; ++j)