变量将不会更新(在If语句内部)

时间:2019-09-19 03:00:31

标签: java variables if-statement greenfoot

从事学校项目,我们应该修改游戏以使其具有教育意义。我想通过变量moduleThree在数字0、1和2之间循环。但是,当我将变量设置为与最初定义的变量相等时,变量将不会更新,这令人难以置信。

我尝试将if / else链放入带有return的其他方法中,但这没有用。我尝试将其放在多个位置。

public class Alien extends Actor
{
    int SPEED = -7; // Speed of 10 in left direction "-"
    int tempType = (int)(Math.random() * ((2-0) + 1));
    int controlType = 0;
    int moduleThree = 0;

    public Alien() {

    }

    public void act() {
       move (SPEED);
       int timer = 10;
       if (timer>0){
           timer--;
           if(timer == 0) {
               timer = 10;
               controlType++;
               moduleThree = controlType % 3;
               if(moduleThree == 0){
                  ((SpaceLand)(getWorld())).pos.swap("bee");
               }
               else if(moduleThree  == 1){
                  ((SpaceLand)(getWorld())).pos.swap("alien");
               }
               else if(moduleThree  == 2){
                  ((SpaceLand)(getWorld())).pos.swap("soldier");
               }
           }
       }

moduleThree在计算controlType%3时应在0、1和2之间循环,但不会发生更新。即使我手动将其设置为4,也不会发生任何事情。非常烦人。

1 个答案:

答案 0 :(得分:1)

from django.http import HttpResponse def Aboutus(request): retrun HttpResponse('Woww') 行声明了一个局部变量,因此,每次int timer = 10;调用开始时,timer始终设置为10,并且每次调用后都会忘记该变量。看来您打算将act()声明为类的一个字段,以使其在两次调用之间保持其值。如果将定义移到声明timer的位置下方,我认为它会实现您的预​​期。