我有一个用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...
答案 0 :(得分:0)
默认情况下,Java中Java对象的默认布尔变量被设置为默认值false
。在查看代码mapa.todasComidas()
时,您从未明确设置相同的代码。
现在,在while循环中,您正在检查todasComidas
方法是否返回了true
,这不是事实,因此永远不会重置相同的内容,即执行if条件的内部语句。您的外部语句确实会执行并在控制台上打印,因为它不受任何if条件的保护。