Ошибка при использовании простых операторов IF, булевых переменных и матриц

Я пишу программу, которая указывает, есть ли путь в лабиринте, который представляет собой матрицу символов. Мой первый шаг - убедиться, что первые и последние строки содержат определенный символ. код очень прост, но он работает наоборот. Это код:

public static void main (String [] args) {// TODO Автоматически сгенерированная заглушка метода

    final int ROWS = 5;
    final int COLUMNS = 6;
    int entryIndex = -1, exitIndex = -1, row;
    boolean work = true;
    boolean entryFound = false;
    boolean exitFound = false;
    char maze[][] = { {'a', '|', 'a', 'a', 'a', '|'},
                      {'a', 'a', 'a', 'a', 'a', '|'},
                      {'a', 'a', 'a', 'a', 'a', '|'},
                      {'a', 'a', 'a', 'a', 'a', '|'},
                      {'a', 'a', 'a', 'a', 'a', '|'} };

        for (int col=0; col < COLUMNS; col++) {
            if (maze[0][col] == '|') {
                entryFound = true;
                entryIndex = col;
            }

        for (int col2=0; col2 < COLUMNS; col2++) {
            if (maze[ROWS-1][col2] == '|') {
                exitFound = true;
                exitIndex = col2;
            }

            if (entryFound == false || exitFound == false) {
                //work = false;
                System.out.println("No entry or exit for the maze had been found. Quitting");
                return;
            }

В конце я получаю сообщение "Вход или выход не найдены". Как это могло произойти? Что может пойти не так?

1 ответ

Спасибо dasblinkenlight, теперь это работает. В этом случае я получил сообщение "Вход или выход не найден", хотя они существуют.

Другие вопросы по тегам