为什么我的第二个阵列没有完全打印出来?

时间:2015-11-06 11:49:36

标签: java arrays eclipse for-loop

我正在尝试在列和行中创建以下数字的表示。

为什么我的第二个阵列没有完全打印出来?

此外,这些数字不是以行和列方式打印的。这是为什么?

public class MultidimensionalArrays
{

public static void main(String[] args)
{   
    //initializes rows and columns
    //first box = row, second box = column
    int firstarray[][] = {{3, 4, 5, 6,} , {8, 9}};

    //System.out.println(firstarray[0][1]) = 9;

    //initializes another rows and columns
    int secondarray[][] = {{11, 12, 13} , {88} , {100, 200, 300} , {33, 35, 37}};

    //displays the 1st array
    System.out.println("this is the 1st array: ");
    display(firstarray);

    System.out.println();

    //displays the 2nd array
    System.out.println("this is the 2nd array: ");
    display(secondarray);
}

//makes a method to display out the arrays
public static void display(int x[][])
{
    //makes a for-loop that prints out the row
    for(int row = 0; row < x.length; row++)
    {
        //makes a for-loop that prints out the column
        for(int column = 0; column < x.length; column++)
        {
            //sysouts the rows & columns
            System.out.print(x[row][column] + "\t");
        }
    }
}


}

错误代码:

this is the 1st array: 
3   4   8   9   
this is the 2nd array: 
11  12  13  Exception in thread "main"           java.lang.ArrayIndexOutOfBoundsException: 3
at MultidimensionalArrays.display(MultidimensionalArrays.java:37)
at MultidimensionalArrays.main(MultidimensionalArrays.java:24)

2 个答案:

答案 0 :(得分:2)

您的数组不是矩阵,因此列长度不等于行长度。实际上,不同的行具有不同的列数,因此您必须使用每行的单独长度。

尝试:

for(int row = 0; row < x.length; row++)
{
    //makes a for-loop that prints out the column
    for(int column = 0; column < x[row].length; column++)
    {
        //sysouts the rows & columns
        System.out.print(x[row][column] + "\t");
    }
}

答案 1 :(得分:2)

您正在使用行数来打印列。这些在您的测试用例中显然不匹配。像这样修改

where('Id', $id)->first()

您可能还应该在每行后打印一个新行。我为此添加了代码。