public double open() {
if (status.equalsIgnoreCase("Pending")) {
status = "Open";
if (startPrice <= 5) {
return 0.2;
} else if (startPrice > 5 && startPrice <= 20) {
return 0.5;
} else if (startPrice > 20 && startPrice <= 100) {
return 1;
} else if (startPrice > 100 && startPrice <= 250) {
return 2.5;
} else if (startPrice > 250) {
return 5;
}
} else if (!status.equals("Pending")) {
return -1;
}
}
Можете ли вы объяснить мне, почему компилятор продолжает запрашивать отсутствующие операторы возврата. И как я могу это исправитьПочему мой код продолжает запрашивать недопустимый оператор возврата
status = "pending" –
java недостаточно умен, чтобы знать, что ваши утверждения 2 if являются исчерпывающими. Вам действительно нужно прямо сказать это. Насколько известно java, возможно, если if и else, если он является ложным, а затем он не знает, что делать. Он должен вернуть двойник, но вы не сказали ему, что делать. – Cruncher