私はループとif文をテストするための単純な戦闘ゲームを構築していますが、私は複雑な論理問題に遭遇しました。Javaが最初にゼロになる数字を計算する
ループは、プレイヤーまたは敵HPがゼロになると終了しますが、私のコードでは、どのHPが最初に0になるかを検出できないことがわかりました。
ループを破るために最初にゼロになる番号を追跡する簡単な方法はありますか?
do {
@SuppressWarnings("resource")
Scanner reader = new Scanner(System.in);
System.out.println("1: Attack. 2: Defend");
int n = reader.nextInt();
if (n == 1){
PHP = (PHP-EATK);
EHP = (EHP-PATK);
} else if (n == 2){
PHP = (PHP-Math.max(0, EATK-PDEF));
}
System.out.println("P "+PHP);
System.out.println(EHP);
}
while (PHP >= 1 || EHP >= 1);
if(PHP <= 0){
System.out.println("You Lose!");
}else if (EHP <= 0){
System.out.println("You win!");
}
ああ、[OK]を、私はもともと&&でそれを持っていなかったが、私はそれを作るだろうと思ったので、私はそれを変更しました両方または0になるまで実行されます。 – Exostrike