0
我想要生成這個二維陣列迷宮10 10與數字0-9在每行10行,但我不斷收到數組超出界限例外。我再次檢查我的索引和循環格式,一切都看起來很標準。爲什麼我不能生成這個10x10二維數組?
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有兩個問題,爲什麼把數組放在指定的構造函數中,其次是爲什麼有這種格式的語法?謝謝 – SkyZ
@SkyZ當你說'int N,M;'時,因爲'N'和'M'是原始的'int's,所以它們的值爲'0'。如果你不把初始化放在構造函數中,你會得到一個數組''[0] [0]'。至於語法的格式,它覆蓋了[JLS-15.10.1。數組創建表達式](http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.10.1) –