Ошибка Java недоступна
Я пытаюсь создать класс, который имеет базовый объект. Базовый объект будет использоваться для создания нескольких объектов и превращения в "бой" в другом классе на основе силы и бонусов.
Я получил эту ошибку при компиляции "Ошибка, недостижимое утверждение", и она указывает на строку 27, указывающую на возврат, может кто-нибудь помочь мне, пожалуйста?
public class Superhero {
private String superheroName;
private int superheroStrength;
public int powerUp;
public Superhero (String superheroName, int superheroStrength, int powerUp){
this.superheroName = superheroName;
this.superheroStrength = superheroStrength;
System.out.println("Superhero: " + superheroName);
System.out.println("Strength: " + ( superheroStrength + powerUp));
}
public Superhero (String superheroName, int powerUp){
this.superheroName = superheroName;
superheroStrength = 10;
System.out.println("Strength: " + ( superheroStrength+powerUp));
}
public int getStrength(){
return superheroStrength += powerUp;
}
public void powerUp (int powerUp){
this.powerUp += powerUp;
}
public Superhero battle(Superhero1 opponent){
if (this.getStrength()>opponent.getStrength());
return this;
return opponent;
}
public String toString(){
return this.superheroName;
}
}
1 ответ
Дополнительный ;
вызвал весь беспорядок
if (this.getStrength()>opponent.getStrength()); <--
Эта точка с запятой завершает оператор там и принимает его как новый блок с указанием оттуда.
Отсюда и код
public Superhero battle(Superhero1 opponent){
if (this.getStrength()>opponent.getStrength());
return this;
return opponent;
}
равно
public Superhero battle(Superhero1 opponent){
if (this.getStrength()>opponent.getStrength()){
}
return this;
return opponent;
}
Удалить это лишнее ;
(надеюсь, что это не было преднамеренно напечатано), коды будут в порядке.
Как кто-то уже прокомментировал, это причина, всегда используйте фигурные скобки, чтобы избежать подобных ситуаций.