ошибка missing return statement
Метод должен возвращать true если строка(str) начинается с "hi", иначе возвращает false
public boolean startHi(String str) {
String w = str.substring(0,2); // w = первые 2 символа str
if ( str.length() > 2 ) {
if(str.equals("hi")) {
return true;
}
} else {
return false;
}
}
но выдает следующую ошибку
missing return statement line:10
Ответы (2 шт):
Автор решения: StateItPrimitive
→ Ссылка
Причина проблемы:
В случае входа в if ( str.length() > 2 )), но не попадания во вложенный if(str.equals("hi")), окажется, что отсутствует конструкция return, которую следует исполнить потоку.
Как исправить:
Существует множество способов, к примеру, извлечь конструкцию return false; из блока else:
public boolean startHi(String str) {
if (str.length() >= 2) {
String w = str.substring(0, 2); // w = первые 2 символа str
if (w.equals("hi")) {
return true;
}
}
return false;
}
Но логичнее сразу написать следующее:
public boolean startHi(String str) {
return str.substring(0, 2).equals("hi");
}
А еще логичнее воспользоваться методом startsWith:
public boolean startHi(String str) {
return str.startsWith("hi");
}
Автор решения: Эникейщик
→ Ссылка
Зачем вам переменная w, если она не используется? Этот метод будет возвращать true, если вся строка равна "hi".