Накидали...
1. Второй вариант Евгения мне тоже в голову приходил. Естественно выполнять вторую команду только в случае отсутствия проблем с первой. Но как-то внешне нарушается равноправность двух шагов.
2. Вариант с do while мне почему-то по жизни просто не нравится из-за самого оператора цикла. Фиг знает посчему предпочитаю while в начале (еще один интересный психологический вопрос...)   ). Поэтому и в голову варианты с do while приходят в последнюю очередь
3. Первый вариант Евгения с состояниями мне в голову не приходил, но чисто внешне кажется несколько длинноватым.
4. Последний вариант Ильи Ермакова - это же БЛЕСК!!!!
Не даром в Питоне есть ветка else у цикла while. Надо в учебном языке тоже такое сделать.
Спасибо!