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
говорит само за себя.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы