Как можно избавиться от предыдущей итерации рекурсивного вызова метода?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как можно избавиться от предыдущей итерации рекурсивного вызова метода?

Сообщение Anonymous »

У меня есть метод, который проверяет, если введенные пользовательские значения находятся в пределах границ массивов: < /p>

Код: Выделить всё

public static void placeMove(int num1, int num2){
//checking if x and y are  greater than rows and columns of a 2D array
if(num1 > rows-1 || num2 > columns-1){
System.out.println("This space is off the board, try again.");
int[] values = new int[2];
values = inputMove(); //calls inputMove method to ask user for new input
placeMove(values[0],values[1]); //calling itself to check
//if new values are prohibited
}
//code to place a value in grid[num1][num2]
}
< /code>
У меня есть 2D -массив (размер строк и столбцов варьируется в зависимости от настроек): < /p>
char[][] grid = new char[rows][columns];
Мой метод PlacteMove дает мне ArrayIndexoutOfBoundSexception, когда я проверю ошибку, если NUM1/NUM2 больше, чем их соответствующая строка/col. Plactemove снова вызывает Plactemove, и состояние первого вызова для Placemove сохраняется в стеке, и после завершения второго вызова для Plactemove завершено, затем первая итерация возобновляет его дальнейшее выполнение с сохраненными значениями его локальных переменных из стека и вызывает исключение. Как мне это предотвратить?

Подробнее здесь: https://stackoverflow.com/questions/450 ... ethod-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»