@Dmitry07

Почему без второго 'return' программа не работает?

Доброго времени суток.

Имеется задача, в рамках которой требуется из одной строки (base), удалить все подстроки (remove), без учета регистра. Задача была решена следующим образом:

public String withoutString(String base, String remove) {
  String result = "";
  
  for (int i = 0; i < (base.length()-remove.length()+1); i++)
    if (!base.substring(i, i+remove.length()).toLowerCase().equals(remove.toLowerCase()))
      result += base.substring(i, i+1);
    else if (i+remove.length() < base.length())
      i += remove.length()-1;
    else
      return result;
  
  for (int j = base.length()-remove.length()+1; j < base.length(); j++)
    result += base.substring(j, j+1);
  
  return result;
}

Без конструкции

else
  return result;

программа проходит все проверки, кроме случая "Hi HoHo"/"Ho" (вывод: "Hi o").

Вопрос, почему здесь необходим оператор `return` (второй, по сути), и тот же оператор `break` тут не подойдет?

Благодарю.
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ответы на вопрос 2
DMGarikk
@DMGarikk
Lead Software Developer
Я бы вам посоветовал переделать решение задачи, а не искать ошибке в этом коде
Ответ написан
@aol-nnov
ручной счет рулит. выполни по шагам алгоритм, и твой вопрос отпадет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы