Проблема с циклом while при его выполнении - PullRequest
0 голосов
/ 19 мая 2019

У меня есть программа, которая реализует мини-игру с swing, и в основном классе у меня есть цикл, который слушает логическое значение на карте игры.Цикл, реализованный с помощью while, не выполняет инструкцию, если она единственная, и я не знаю почему.

Я попытался поместить некоторые другие инструкции, чтобы проверить, работает ли цикл, и он работал нормально,но когда я ставлю только if, что я хочу, это не работает.

public class ejecutor extends JFrame{
boolean ejecutando = true;

    public ejecutor(){
        mapa mapa = new mapa(); //the map of my game
        setSize(665,690);
        add(mapa);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
        while(ejecutando){ 
            if(mapa.todasComidas()){
            //wLabel();
            ejecutando=false;
            System.out.println("You finished!!");
            }
//If I put this println it works, if I only use the If, without any other instruction inside the while, it does not do anything at all
            System.out.println("............");
        }
    }
//I execute the constructor in the main...

1 Ответ

0 голосов
/ 19 мая 2019

По умолчанию логическим переменным Java-объекта в Java присваивается значение по умолчанию false.Глядя на свой код mapa.todasComidas(), вы никогда не устанавливаете одно и то же явно.

Теперь в вашем цикле while вы проверяете, возвращает ли метод todasComidas true, что не будет иметь место и, следовательно, никогдасбрасывает то же самое, т.е. выполняет внутренние операторы условия if.Ваш внешний оператор выполняется и печатается на консоли, поскольку он не защищен никакими условиями if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...