Мой символ потерян в лабиринте
Я создаю игру-лабиринт как часть оценки университета. Я собирался пройтись по лабиринту, пока не найду персонажа '&'
а затем вернуть координату у игрока (я сделал тот же метод для получения позиции х и получить ту же ошибку)
Ошибка, которую я получаю:
MazeGame.java:133: error: cannot find symbol
return i;
^
symbol: variable i
location: class MazeGame
1 error
И мой код,
public static int getCurrentYPosition() {
for (int i = 0; i < numberOfRows; i++) {
for (int n = 0; n < board[i].length; n++) {
if (board[i][n] == '&') {
break;
}
}
}
return i;
}
Почему он не может найти символ?
1 ответ
Решение
i
не в области после цикла. return
когда вы найдете его, и обработать случай, когда персонаж не найден с помощью стража (например, -1
). И, как написано break
будет применяться только к внутреннему циклу (так что если мы сделаем i
например, если увеличить его область видимости) return
numberOfRows
как i
увеличивается до тех пор. Итак, я думаю, что вы действительно хотели что-то вроде
public static int getCurrentYPosition() {
for (int i = 0; i < numberOfRows; i++) {
for (int n = 0; n < board[i].length; n++) {
if (board[i][n] == '&') {
return i;
}
}
}
return -1;
}
Обратите внимание, что вы также можете написать это с for-each
петля как
for (int i = 0; i < numberOfRows; i++) {
for (char ch : board[i]) {
if (ch == '&') {
return i;
}
}
}
return -1;