【问题标题】:2D array with user input带有用户输入的二维数组
【发布时间】:2015-07-11 00:03:51
【问题描述】:

我想创建一个 5 行 2 列的 int 数组,并让用户输入数组中的每个值。我想使用 StdIn 作为输入。为什么这行不通?请帮忙!谢谢。

这是我的努力:

int [][] a = new int [5][2];

int i;
int j;

for( i = 0; i < 4; i++ );
{
  for( j = 0; j < 2; j++ );
  {
    System.out.println( "Month number (e.g. August = 8)" );
    int month = StdIn.readInt();
    a[i][0] = month;

    System.out.println( "Year number (e.g. 2007)" );                
    int year = StdIn.readInt();
    a[i][1] = year;

  }
}

【问题讨论】:

    标签: java arrays for-loop multidimensional-array stdin


    【解决方案1】:

    您已经向用户询问了这两个值,不需要嵌套循环:

    int [][] a = new int [5][2];
    for(int i = 0; i < 5; i++ )
    {
        System.out.println( "Month number (e.g. August = 8)" );
        int month = StdIn.readInt();
        a[i][0] = month;
    
        System.out.println( "Year number (e.g. 2007)" );                
        int year = StdIn.readInt();
        a[i][1] = year;
    
    }
    

    我还删除了第一个 for 循环后的分号 ;,使其无用,并将迭代固定为 4(您正在循环 [0..4),您可能想要 [0. .5) )。

    j 已被删除,因为不需要嵌套循环,并且我已将 i 设为 for 循环的本地。

    【讨论】:

    • 效果很好!我错过的主要错误是不必要的嵌套循环和分号。非常感谢!