Ваша логика опасна для бесконечного цикла, так как ваш флаг установлен в false только в
if{
}
else if {
}
, и вы никогда не устанавливаете его в другом месте.
Плюс, если ваш первый, еслиэто неправда, вы входите в бесконечный цикл прямо здесь ...
всегда пишите else, когда пишете if ... или думаете о том, что должно произойти, если ваше условие неверно в if.Таким образом, вы избежите много ошибок; -)
Мои 2 цента