Это потому, что после всех ваших операторов if
у вас есть оператор return
, который никогда не будет выполнен, поскольку, если ни один из операторов if
не совпадает, он перейдет к оператору else
и завершится там. .
Вы можете удалить строку return
или окончательную else
в зависимости от ожидаемого возвращаемого значения, если не выполнено ни одно из условий.
...
public static String armOpener(String answer) {
String ans = answer.toLowerCase();
if (ans.equals("left")) {
return "Aha! Indeed the gemstone was hidden in the left hand. Now...";
} else if (ans.equals("right")) {
return "Bummer! The treasure was in the other hand. Easy for me to say, huh? What if there wasn't a treasure from the start of? Who knows...";
}
return "Did you not hear me boy? I'm asking you, which hand?!";
}
...
Кроме того, похоже, что вы возвращаете одно и то же значение для разных буквенных символов слов (right
и RIGHT
), которые можно обработать в одном выражении путем сравнения значения переменной в нижнем регистре. Затем, когда у вас есть несколько if, как это, вы можете упростить это, используя оператор switch
:
...
public static String armOpener(String answer) {
switch(answer.toLowerCase()) {
case "left":
return "Aha! Indeed the gemstone was hidden in the left hand. Now...";
case "right":
return "Bummer! The treasure was in the other hand. Easy for me to say, huh? What if there wasn't a treasure from the start of? Who knows...";
default:
return "Did you not hear me boy? I'm asking you, which hand?!";
}
}
...