执行时出现while循环问题

时间:2019-05-19 11:40:14

标签: java swing netbeans while-loop

我有一个用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 :(得分:0)

默认情况下,Java中Java对象的默认布尔变量被设置为默认值false。在查看代码mapa.todasComidas()时,您从未明确设置相同的代码。

现在,在while循环中,您正在检查todasComidas方法是否返回了true,这不是事实,因此永远不会重置相同的内容,即执行if条件的内部语句。您的外部语句确实会执行并在控制台上打印,因为它不受任何if条件的保护。