0

我写了一个类,它有一个基于用户输入增长的二维数组,并允许用户在数组中输入数字。用户将输入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]);

         }

        }

    }               
}
4

2 回答 2

3

第二维的长度应该是nums[i].length,注意:(i对于你的例子)

于 2013-04-25T18:53:35.913 回答
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)
于 2013-04-25T18:56:05.657 回答