У меня есть оператор if (пошаговые атаки), если есть простой способ выйти из выражения if, чтобы противник не атаковал, если он уже мертв?Как вырваться из утверждения if в середине пути | java
Надеюсь, не сделав другого утверждения, равного тому, которое у меня уже есть. Просто звучит глупо, чтобы иметь два одинаковых утверждения внутри друг друга.
Простейшим способом было бы, чтобы цикл While прорвался, как только враг умрет, я думаю. Но я не эксперт.
while (!monster.isDead() && !player.isDead())
{
HashSet<String> input = reader.getInput();
if(input.contains("attack")) {
int playerAttack = player.attack();
int monsterAttack = monster.attack();
if (monster.getMonsterLiv() > 0)
{
monster.getAttacked(playerAttack);
System.out.println(Utilities.battleString(player.getName(), monster.getMonsterNavn(), playerAttack, monsterAttack, monster.getMonsterLiv()));
overView += "\n" + Utilities.battleString(player.getName(), monster.getMonsterNavn(), playerAttack, monsterAttack, monster.getMonsterLiv());
player.getAttacked(monster.attack());
System.out.println(Utilities.battleString(monster.getMonsterNavn(), player.getName(), monsterAttack, playerAttack, player.getHealth()));
overView += "\n" + Utilities.battleString(monster.getMonsterNavn(), player.getName(), monsterAttack, playerAttack, player.getHealth());
} else {
monster.getAttacked(playerAttack);
System.out.println(player.getName() + " attacks " + monster.getMonsterNavn() + " for " + playerAttack + " damage, and kills the " + monster.getMonsterNavn());
overView += "\n" + player.getName() + " attacks " + monster.getMonsterNavn() + " for " + playerAttack + " damage, and kills the " + monster.getMonsterNavn();
}
}
else if (input.contains("run"))
{
player.setGold(player.getGold() - 50);
break;
}
else {
System.out.println("Unknown word, try \"attack\" or \"run\" instead!");
}
}
Способ, которым я это сделал, может быть немного странным. Любые советы по форматированию кода также приветствуются!
'if (! Monster.isDead()) {attack back}' – azurefrog