条件为假时输入while循环

时间:2015-08-03 13:31:37

标签: java

我目前正在制作RPG游戏,你可以在杀死敌人后获得经验。这是相关的代码:

this.experience_current += experience;
while(this.experience_current >= EXPERIENCE_MAX);
{
    System.out.println(this.experience_current >= EXPERIENCE_MAX);
    levelUp();
    this.experience_current -= EXPERIENCE_MAX;
}

这里发生的事情是,在敌人死亡时,这种方法被称为为玩家当前的经验总数增加经验。然后将该总数与升级经验进行比较,如果总数高于最大值,我们升级并将总数减少最多。它是一个循环,以确保大的经验值(如来自老板)可以使我们多次升级。

我遇到的问题是这个循环不应该在运行时运行。在杀死我的第一个敌人并获得3个经验值(最多100个)时,会调用此方法。条件不满足,但我们仍然进入while循环。 System.out.println(...)行正在打印" false"到控制台确认情况已经破裂,但是,我们还在这里。

我没有在这里进行任何类型的多进程编程,因此我无法想象总值会被更改为使循环条件正确的值。真的 - 我为什么不能进入循环而感到茫然。

1 个答案:

答案 0 :(得分:4)

while末尾有一个多余的分号。删除它,你的循环应该工作。