java 陣列長度異常_java-迴圈超出陣列長度範圍時,越界異常

因此,該程式應該根據使用者輸入在3到11的大小之間生成一個奇數大小的陣列,然後在特定位置用一個字元填充該板上以取得圖案.一切都進行得很好,直到我嘗試回傳的陣列給了我2個超出範圍的異常,即使我將迴圈設定為小於尺寸.我在這裡以5為例,嘗試得到5 x 5的陣列.這是主要的.

public static void main (String [] args) {

int dimension = findDimension();

char [] [] array2d = new char [dimension] [dimension];

char star = '*';

array2d = leftDiagonal(star,dimension); // Get out of bounds here

print(array2d);

}

要求使用者輸入「 findDimension()」的方法

public static int findDimension() {

int dimension = 0;

Scanner keybd = new Scanner(System.in);

do {

System.out.print("Enter an odd integer between 3 and 11 please: ");

dimension = keybd.nextInt();

} while (dimension%2 == 0);

return dimension; // Everything seems fine here,no errors

}

列印陣列的方法

public static void print(char [] [] arrayParam) {

System.out.println("-----------");

System.out.println(arrayParam);

System.out.println("-----------");

}

設定模式「 leftDiagonal」的方法

public static char [] [] leftDiagonal(char starParam,int dimenParam) {

char [] [] leftD = new char [dimenParam] [dimenParam];

for (int i = 0; i < dimenParam; i++){

for (int j = 0; i < dimenParam; j++) {

leftD [i][j] = starParam; // Gets error here

}

}

return leftD;

}

輸出應為

-----------

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

-----------

從技術上講應該是

-----------

*

*

*

*

*

-----------

但此刻我只想取得任何輸出.我本來打算用空白」填充所有空白,然後用字元填充我需要的空白,但是我什至無法使陣列先列印出來.謝謝任何願意提供幫助的人.