Java 每当我的列大于行时获取越界异常

Java 每当我的列大于行时获取越界异常,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我一直在用我的密码把头撞在墙上。我最终得到了我的代码,允许我根据用户需要的行数和列数输入任何数字,但由于某种原因,每当我尝试输入比行数大的列数时,我都会出错。我已经读了几十遍我的循环,在我认为程序计数过多的地方插入-1,但它仍然不起作用。我假设当多维数组完全依赖于用户时,这是编写多维数组的合适方法,但如果不是,请告诉我如何使代码更高效。谢谢 public class MultiPractice { public static void main(String[] args) {

我一直在用我的密码把头撞在墙上。我最终得到了我的代码,允许我根据用户需要的行数和列数输入任何数字,但由于某种原因,每当我尝试输入比行数大的列数时,我都会出错。我已经读了几十遍我的循环,在我认为程序计数过多的地方插入-1,但它仍然不起作用。我假设当多维数组完全依赖于用户时,这是编写多维数组的合适方法,但如果不是,请告诉我如何使代码更高效。谢谢

public class MultiPractice {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        // Prompts user to insert desired rows and columns
        System.out.print("Enter how many rows you want in your array: ");
        int rowSize = input.nextInt();
        System.out.print("Enter hwo many columns you want in your array: ");
        int colSize = input.nextInt();

        // Asks users to insert desired numbers for the multi-array
        System.out.print("Enter " + (rowSize*colSize) + " integers: ");

        // Creates the multidimensional array
        int[][] multi = new int[rowSize][colSize];

        // Runs the for loop to put numbers where they belong in array
        for (int i = 0; i < multi.length; i++) {
            for (int j = 0; j < multi[colSize].length; j++) {
               multi[i][j] = input.nextInt();
               System.out.print(multi[i][j] + " ");
            }
            System.out.println();
       }

    }
}
公共类多重实践{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
//提示用户插入所需的行和列
System.out.print(“输入数组中所需的行数:”;
int rowSize=input.nextInt();
System.out.print(“在数组中输入所需的列:”);
int colSize=input.nextInt();
//要求用户为多重数组插入所需的数字
System.out.print(“输入”+(rowSize*colSize)+“整数:”;
//创建多维数组
int[]multi=新int[rowSize][colSize];
//运行for循环以将数字放入数组中它们所属的位置
for(int i=0;i
multi[colSize].length
应该是
multi[0]。length
multi[i]。length
(因为您有一个矩形数组,所以它们的值相同)


multi[colSize]。length
是行的长度
colSize
。因此,如果您的行数小于
colSize+1
行(因为它们从0开始),这就超出了范围。

是.length把您搞得一团糟。Multi[colSize]。长度与colSize不同;事实上,它是colSize+1(因为长度从1开始计算)


我的解决方案:您可以使用
i
而不是使用
multi.length
。您还可以将
多[colSize]
交换,谢谢!这是完全有道理的,我只是在多维数组中找到好的材料有很多困难。