Мы уже знаем условный цикл while, изучим еще один. Синтаксис цикла несложный:
repeat <тело цикла> until <условие>;
Если цикл while имел предусловие, то цикл repeat имеет постусловие, которое выполняется после тела цикла. Есть еще отличие – цикл while выполняется до тех пор, пока условие истинно, а цикл repeat будет выполняться, пока условие ложно. В цикле while, если условие изначально ложно, тело цикла никогда не будет выполняться. Repeat выполнит тело цикла по крайней мере, один раз. Затем оператор проверяет условие, и если оно ложно, выполняет тело цикла еще раз, и так до тех пор, пока <условие> не вернет истину. Еще одно замечание: зарезервированные слова repeat..until работают как скобкиbegin...end, поэтому в теле цикла может быть сколько угодно инструкций, которые уже не нужно заключать в begin..end. Пример:
i:= 3;
repeat
i:= i + 1;
ShowMessage('i = ' + IntToStr(i));
until i > 10;