DennisKingsman
@DennisKingsman
Студент

Почему не идет дальше по телу цикла?

Есть функция проверки в которой выполняется множество проверок
static void checkAll()
    {

        while (true)
        {
            StudentOrder sO = readStudentOrder();
            if (sO == null)
            {
                break;
            }
            AnswerCityRegister cityAnswer = checkCityRegister(sO);
            if (!cityAnswer.answer) // if answer is  then keep going
            {
                continue; // if it's empty than go to the beginning of cycle
            }
            AnswerWedding weddingAnswer = checkWedding(sO);
            AnswerChildren childAnswer = checkChildren(sO);
            AnswerStudent studentAnswer = checkStudent(sO);

            sendMail(sO);
        }
    }

одна из таких проверок это
static AnswerCityRegister checkCityRegister (StudentOrder sO)
    {
        CityRegisterValidator cityRegisterValidator = new CityRegisterValidator();
        cityRegisterValidator.hostName = "Host1";
        cityRegisterValidator.password = "Password1";
        AnswerCityRegister answer = cityRegisterValidator.checkCityRegister(sO);
        return answer;
    }

в ней для конечного ответа используется класс объявленный как
public class AnswerCityRegister
{
   public boolean answer;
}

так же класс
public class CityRegisterValidator
{
    public String hostName;
    public int port;
    private String login;
    public String password;

    public AnswerCityRegister checkCityRegister (StudentOrder sO)
    {

        System.out.println("CityRegister is running : " + hostName + ", " + login + ", " + password + '.');

        AnswerCityRegister ans = new AnswerCityRegister();
        ans.answer = false;
        return ans;
    }
}

по выполнению кода выводит бесконечное количество раз выводит "CityRegister is running : " + hostName + ", " + login + ", " + password + '.' а по идее должен был проводить другие проверки и дойти до конца , что ему мешает?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
ans.answer = false;
return ans;

значит answer всегда false. Проверка if(!answer) всегда true.
continue; // if it's empty than go to the beginning of cycle
говорит само за себя.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект