1

参照を使用してメソッドに引数として渡し、メソッド本体でJavaの初期化を行うことは可能ですか? 私が意味するのはこれです:私はパラメータとして配列を取得するメソッドを持っています:

public static void arrayreader(int [] [] m){
int rows,cols;
rows=input.nextInt();cols=input.nextInt();
m = new int [rows][cols];
for(int i=0;i<rows;i++){
    for(int j=0;j<cols;j++){
       m[i][j] = input.nextInt();
       }
   }
}

メインメソッドではなくメソッド本体で配列の初期化を行いたいのですが、Javaはそれを許可せず、初期化されていないと言います

4

5 に答える 5

1

メソッドで配列を初期化する場合は、パラメーターとして渡す必要はありません

代わりにこのようなことができます

public static int[][] arrayreader()
{
   int rows,cols;
   int[][] result = new int[rows][cols];

   rows=input.nextInt();
   cols=input.nextInt();

   for(int i=0;i<rows;i++)
   {
       for(int j=0;j<cols;j++)
       {
           result[i][j] = input.nextInt();
       }
   }

   return result;
}
于 2012-12-27T08:36:14.007 に答える
0

mainで次のように配列オブジェクトを作成することもできます。

int rows,cols;
rows=input.nextInt();cols=input.nextInt();
m = new int [rows][cols];

そして、次のような機能を持つことができます:

public static void arrayreader(int [] [] m, int rows, int cols){
 for(int i=0;i<rows;i++){
   for(int j=0;j<cols;j++){
      m[i][j] = input.nextInt();
   }
 }
}
于 2012-12-27T08:46:24.287 に答える