为什么一个int继续添加不停止

时间:2012-10-22 11:36:00

标签: java int

我正在开发一款游戏。我是java的新手并研究过google:为什么添加int时会继续添加java

大多数情况下,它总是会增加:

STOP_DAMAGE+=1;

即使有时候,它会减去直到负面。我很烦。有时它不会增加太多。我不明白。这是我的代码:

if(isPressed==true) {
    if(STOP_DAMAGE<=5) {
        if(WAIT_DAMAGE>=3000) {
            ENEMY_SHIP_HEALTH-=SHIP_DAMAGE_ENEMY;
        STOP_DAMAGE+=1;
        }
    }
}
for(;WAIT_DAMAGE>=3003;) {
    WAIT_DAMAGE-=WAIT_DAMAGE;//time is deducted
}

//WAIT_DAMAGE is a time int

2 个答案:

答案 0 :(得分:1)

该行

 STOP_DAMAGE+=1;

总是会添加一个,除非你有溢出,这将是令人惊讶的。

您更有可能需要使用调试器来更好地了解您的程序实际执行的操作。

顺便说一句

for(;WAIT_DAMAGE>=3003;)
    {

        WAIT_DAMAGE-=WAIT_DAMAGE;//time is deducted
    }

相同
if (WAIT_DAMAGE>=3003)
    WAIT_DAMAGE = 0;

答案 1 :(得分:1)

int: int数据类型是32位带符号的二进制补码整数。它的最小值为-2,147,483,648,最大值为2,147,483,647(含)。对于整数值,此数据类型通常是默认选择,除非有理由(如上所述)选择其他内容。此数据类型很可能足以容纳您的程序将使用的数字,但如果您需要更宽范围的值,请使用long。

 int n =  2147483647;
 System.out.print( n+ 1);

上面会给你一个负值..

因此,一旦达到其最大值,它就会因为位移而从-ve值开始。