По-моему, если ощущать цикл как "езду по рельсам инварианта", то вариант с WHILE вообще очень естественен. Сначала поставили "на рельсы", потом переезжаем далее. В общем случае начальное установление инварианта может быть не таким же, как последующее его восстановление.