Решил сделать с использованием boolean флага. Кажется, что должно правильно отрабатывать. Запускал у себя - всё работает правильно, выводит нужные состояния. Но компилятор не пропускает по 4-му пункту.