0

私はゲームを開発しています。私は本当に 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

4

2 に答える 2

1

int: int データ型は、32 ビットの符号付き 2 の補数整数です。最小値は -2,147,483,648 で、最大値は 2,147,483,647 (包括的) です。整数値の場合、他のものを選択する理由 (上記のような) がない限り、通常、このデータ型がデフォルトの選択です。ほとんどの場合、このデータ型はプログラムで使用する数値に対して十分な大きさですが、より広い範囲の値が必要な場合は、代わりに long を使用してください。

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

上記は負の値を与えます..

したがって、最大値に達すると、ビットがシフトするため、-ve 値から開始されます。

于 2012-10-22T11:41:39.337 に答える
1

この線

 STOP_DAMAGE+=1;

オーバーフローがない限り、常に 1 を追加します。これは驚くべきことです。

プログラムが実際に行っていることをよりよく理解するには、デバッガを使用する必要がある可能性がはるかに高くなります。

ところで

for(;WAIT_DAMAGE>=3003;)
    {

        WAIT_DAMAGE-=WAIT_DAMAGE;//time is deducted
    }

と同じです

if (WAIT_DAMAGE>=3003)
    WAIT_DAMAGE = 0;
于 2012-10-22T11:38:31.543 に答える