У меня возникла проблема с возвратом логического значения в соответствии с заданным условием. Я думал, чтобы проверить данное условие на полные возможности Мне нужно использовать для петли. Но когда я попытался скомпилировать его, это дает мне ошибку, возможно потому, что существует неопределенность, возвращающая логическое значение, использующее цикл for. Вот исходная задача:Могу ли я возвращать значение Boolean в инструкции цикла?
Return true if the given string contains a "bob" string, but where the middle 'o' char can be any char.
bobThere("abcbob") → true
bobThere("b9b") → true
bobThere("bac") → false
И вот мой код:
public boolean bobThere(String str)
{
for(int i=0; i<str.length()-3; i++)
{
if (str.length()>=4): && str.charAt(i)=='b' && str.charAt(i+2)=='b')
{
return true;
}
else
return false;
else if (str.length()==4 && str.charAt(0)=='b' && str.charAt(2)=='b')
{
return true;
}
else
{
return false;
}
}
}
Я просто хотел спросить: 1. Могу ли я исправить этот код для возвращения значения. Я имею в виду, могу ли я использовать для цикла и возвращать определенное значение для данного условия? Если да, пожалуйста, не могли бы вы дать мне образец. 2. Или вы можете решить любые проблемы, кроме цикла, чтобы решить эту проблему.
Заранее спасибо.
Итак, что сообщенная ошибка ?! (и нет, нет причин, по которым вы не сможете возвращать логическое значение внутри цикла) – Alnitak
У вас есть 'if-else', за которым следует' else-if else'. Это неправильно. Пожалуйста, пройдите основные ограничения управления java – TheLostMind
Существуют различные проблемы с этим. Для начала: а) что, если вы никогда не войдете в тело цикла? б) у вас есть 'else if' после простого' else' - это неверно; что вы ожидали от этого? c) Кажется, вы пытаетесь вернуться из * каждой итерации цикла. Я подозреваю, что ты этого не хочешь. –