Ya10
@Ya10

Как добавить в цикл элемент перебора?

Здравствуйте. Есть вот такой метод:

public static String equal(Person person, Person person1) {
        if (person.n() == person1.n() & person.q() == person1.q() & person.e() == person1.e())
            return "да";
// continue;
        else if (person.e() == person1.sum4())
            return "нет";
        else if (person1.e() == person.sum4())
            return "возможно";
        else if (person.sum3() == person1.sum3() & person.n() == person1.n())
            return "дальше";
        else return "не похожи";
    }


хочу добавить оператор continue , что бы код проверяя условие, не останавливался на первом же if, а проверял и следующие варианты, но чтото все время идет не так. Idea ругается, что continue не в цикле и Я не понимаю, как правильно нужно добавить оператор, что бы idea все нравилось и перебор вариантов работал? Подскажите, как правильно это надо записать?
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 2
Jacen11
@Jacen11
что бы код проверяя условие, не останавливался на первом же if, а проверял и следующие варианты
что это за бред. Я даже растерялся. Чем тыкать все подряд слова в надежде что сработает, лучше узнать что они делают. Коньтинью делает переход к обработке следующего элемента. Где в этом коде цикл? Где следующий элемент?

Еще расскажи зачем тебе побитовое И? Ты вообще знаешь что это такое раз используешь?

Все что после return не делается, потому что уже вернул значение из метода. Что угодно пиши после, выполняться не будет

Подскажите, как правильно это надо записать?
менять логику, условия. Ну и конечно тут switch нужно использовать

Рекомендую для начала открыть список всех слов в джаве и изучить что они означают. Их не так много
Ответ написан
xez
@xez Куратор тега Java
Senior Junior Roo
Не совсем понятно чего вы хотите достичь.
Я предположу два варианта: либо вам нужна chain-of-responsibility.
Либо, если вы хотите сначала получить результаты сравнений, а потом уже делать выводы и все это примерно так и в одном методе, то можно попробовать сначала сохранить результаты сравнений, а потом уже делать выводы.
Примерно так:
public static String equal(Person person, Person person1) {
        var yes = (person.n() == person1.n() & person.q() == person1.q() & person.e() == person1.e());
        var no =  (person.e() == person1.sum4());
        var mayBe = (person1.e() == person.sum4());
        var next =  (person.sum3() == person1.sum3() & person.n() == person1.n());
        
        if (yes && mayBe && !no) {  // Это условие  чисто для примера и написано случайным образом.
             return "да";
        }
        // Продолжение вашей блестящей бизнес логики
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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