一个新手问题。我有以下一段Java代码:

 import acm.program.*;
 import java.awt.Color;
 import acm.graphics.*;

 public class ufo extends GraphicsProgram{

    private GRect ufo_ship;
    boolean hasNotLost;
    public void run (){
        setup(); //places ufo_ship to initial position
        hasNotLost = ufo_ship.getY() < 200; //checks if ufo_ship is
                                        //above the bottom edge of window
        while(hasNotLost){
            move_ufo(); //moves ufo_ship
        }
        showMessage(); //shows that program ended
    }
//remaining methods are here
}


当我运行此代码时,矩形ufoship到达窗口底部时不会停止。我猜想是因为它只检查一次飞碟的位置,而不是每次矩形移动时才检查。

有没有不用简单地写while(ufo_ship.getY() < 200)就可以纠正它的方法吗?

最佳答案

hasNotLost = ufo_ship.getY() < 200;

boolean hasNotLost(GRect ufo_ship){ return ufo_ship.getY() < 200; }

while(hasNotLost(ufo_ship))
{
  ...
}


ufo可以拥有自己的类和该方法,因此您只需调用while(ufoShip.hasNotLost())

关于java - 在while语句中使用 boolean 变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1859299/

10-10 05:49