2016-11-14 3 views
-3

私はこのプログラミング言語でnewbeです(ほとんどの場合でも)、私はちょうどゲッターとセッターメソッドで "ifとelse"を使いたいと思っています。私は学習目的のために基本的なRPGをやっています。 私はキャラクターxを持っています。私がしたいことはすべてです。このキャラクターのライフが0より低い場合、このキャラクターを復活させます。これは私の コードです。この基本的な方法Javaで何が間違っていますか?

public Skill bless(Character x) { 
    if (0>= x.getCurrentHp()) { 
     x.getCurrentHp() == x.getHp() * 3/4; 
    } 
    else if (x.getCurrentHp() > 0) { 
     x.getCurrentHp() =+ x.getHp() * 1/2; 
    } 
    return x; 
}  
+0

このメソッドが提供している動作に何が問題なのですか?あなたは、この最も重要な情報を私たちに伝えていません。 –

+0

if文の最初の枝では '='を使用しています。 –

+0

整数除算はあなたが気にしていたものではないと確信しています。 3/4 == 0、整数の除算を使用すると0.75ではありません。私はあなたがその結果に驚いていると思うでしょう。 – duffymo

答えて

1

さて、問題は、これらの行にある次のようにする必要がありますフード方法setCurrentHp/getCurrentHpの下

x.setCurrentHp(x.getHp() * 3/4); 
x.setCurrentHp(x.getHp() * 1/2); 

:あなたはのようなメソッドを使用する必要が

x.getCurrentHp() == x.getHp() * 3/4; 
x.getCurrentHp() =+ x.getHp() * 1/2; 

public class Character { 
    private int currentHp; 
    // ... other methods and fields 

    public void setCurrentHp(int hp){ currentHp = hp; } 

    public int getCurrentHp(){ return hp; } 
} 

x.getCurrentHp()を呼び出すと、単純に値が返されるためです。そして、あなたはその値にx.getHp() * 1/2を割り当てているだけです。

official examplesgetter/setterの方法を参照することができます。

0

代わりの

x.getCurrentHp() == x.getHp() * 3/4 

使用

x.setCurrentHp(x.getHp() * 3/4) 

私はSetメソッドに変更し注意してください。このメソッドが既に作成されていると仮定します。

関連する問題