为什么数组1的长度大于预期?

时间:2014-02-08 01:01:17

标签: java arrays

我正在尝试打印出二维数组的列大小和行大小。我的程序编译但打印出来:

Welcome to DrJava.  Working directory is C:\Users\mulk\Downloads
> run Lab4
Print out the rowsize:  4.0
Print out the  columnsize:  4.0
> 

行大小不应该是3.0吗?我从零开始算。

/*
 * Purpose: Prints the row and column averages
 */
class Lab4
{
  public static void main(String[] args)
  {

     int [][] scores = {{ 20, 18, 23, 20, 16 },
                        { 30, 20, 18, 21, 20 },
                        { 16, 19, 16, 53, 24 },
                        { 25, 24, 22, 24, 25 }};
     outputArray(scores);
  }

  public static void outputArray(int[][] array)
  { 
    double rowsize = 0.0;
    double columnsize= 0.0;
    for(double i=0.0;i <= array.length;i++)
    {
      rowsize = array.length;
    }
    System.out.println("Print out the rowsize:  " +rowsize);

    for (double j = 0; j <=array[0].length; j++)
    {
      columnsize = array.length;
    }
    System.out.println("Print out the  columnsize:  " +columnsize);
  }
}

1 个答案:

答案 0 :(得分:0)

2D数组只是一个数组数组。因此,要找出有多少行,我们将执行arrayName.length,然后找出每列中有多少项,我们必须转到第一行(数组)并通过arrayName [0]找出该长度。长度。

因此您可以看到您正在使用的代码会找出两次有多少行。看起来应该是这样的:

    double rowsize = 0.0;
    double columnsize= 0.0;

    rowsize = array.length;
    System.out.println("Print out the rowsize:  " +rowsize);

    if(rowsize >= 1){
        columnsize = array[0].length;
    }
    System.out.println("Print out the  columnsize:  " +columnsize);

我希望这已经解决了你的问题:)