0
私はこの10次元の配列迷路10を生成しようとしていますが、10行の各行に0〜9の数字を付けていますが、配列の境界外の例外が続きます。私は私のインデックスとループフォーマットをチェックして、すべてが標準的に見えます。この10x10 2D配列を生成できないのはなぜですか?
public class MazeDemo {
public static void main(String[] args) {
Maze maze = new Maze(10, 10);
maze.generate();
}
}
class Maze {
int N, M;
int[][] cell = new int[N][M];
public Maze(int N, int M) {
this.N = N;
this.M = M;
}
public void generate() {
for (int i = 0; i < N; i++) {
int counter = 0;
for (int j = 0; i < M; j++) {
cell[i][j] = counter;
counter++;
}
}
display(cell, 10, 10);
}
public static void display(int a[][], int N, int M) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
System.out.print(a[i][j]);
}
}
}
}
ここでは何が起こっていますか?境界外の例外が発生するのはなぜですか?
@ Elliot 2つの質問、なぜコンストラクタで配列を指定し、2番目にその形式の構文を持っていますか?ありがとうございました – SkyZ
@SkyZ 'int N、M;'と言うとき、 'N'と' M'はプリミティブ 'int'なので、値は' 0'です。コンストラクタに初期化を入れないと、 '[0] [0]'という配列が得られます。構文の書式については、[JLS-15.10.1。 「アレイ作成式」(http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.10.1) –