刷新Java参数

Moy*_*amo 2 java robocode

我正在编写一个名为robocode的编程游戏程序.问题出在这里:

    void wallScan(boolean While){
    stop();
    getStraight();
    turnGunRight(90);
    if(startabsolute){
        straight=true;
    }
    while (While){
        ahead(10000000);
        turnRight(90);
    }
    resume();
}
Run Code Online (Sandbox Code Playgroud)

您可能无法理解大多数代码,因为它扩展了robocode.Robot,但我的问题在于变量While.循环没有结束,因为方法获取参数一次,它是真的所以方法成为一个永恒的循环,但有一种方法来刷新方法参数,因为我不想每次调用这个时都做一个while循环方法?

Rof*_*ion 6

你不应该用大写字母写出参数.所以它将是而不是在.但是这是不允许的,因为while是关键字.所以首先要改变你在方法中传递的参数.

那你的问题是,你用参数调用方法.由于它是您传递的原始布尔值,因此在执行wallScan方法期间无法从另一个方法,调用,类等更改该值,因此while循环永远不会完成.

相反,您应该在包含此方法的类中创建一个成员字段,并给它一个有意义的方法.在示例中,我只是将其称为whileCondition.

void wallScan(){
    stop();
    getStraight();
    turnGunRight(90);
    if(startabsolute){
        straight=true;
    }
    while (whileCondition()){
        ahead(10000000);
        turnRight(90);
    }
    resume();
}



 public void setWhileCondition(boolean bool) {
      whileCondition = bool;
   }

   public boolean isWhileCondition() {
     return whileCondition;
   }
Run Code Online (Sandbox Code Playgroud)

因此,您可以设置导致从方法外部终止while循环的条件.