Оператор содержит булевское выражение, которое управляет повторяющимся выполнением последовательности операторов внутри оператора repeat. Эта последовательность выполняется, пока выражение не станет истинным (пока не истина). Последовательность операторов выполняется, по крайней мере, один раз, так как выражение вычисляется после выполнения этой последовательности.
Пример {вычисление h(n)=1+1/2+1/3+…+1/n}
Program exrepeat;
var n: integer;
h: real;
begin
read(n); write(n);
h:=0;
repeat
h:=h+1/n; n:=n-1;
until n=0;
writeln(h)
end.
Приведенная программа выполняется при всех n>0.
Что произойдет при n<=0?