Таким образом, программа должна создать массив нечетного размера между размерами от 3 до 11 из пользовательского ввода, а затем заполнить эту доску символом в определенных местах, чтобы получить шаблоны.Все шло хорошо, пока я не попытался вернуть массив, который дал мне 2 исключения за пределами границ, даже если я установил свои циклы меньше размеров.Я использовал 5 в качестве примера, чтобы попытаться получить массив 5 на 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;
}
Вывод должен быть
-----------
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
-----------
Ну, технически это должно быть
-----------
*
*
*
*
*
-----------
, но на данный момент я просто хочу получить любой вывод.Первоначально я планировал заполнить все пробелы пробелами '', а затем заполнить те, которые мне нужны, символами, но я даже не могу заставить массив распечатать сначала.Спасибо за всех, кто хочет помочь.