Оператор REPEAT

 

Оператор REPEAT называют оператором цикла с постусловием, т.к. здесь выражение, управляющее повторным выполнением последовательности операторов, помещается после тела цикла.

СИНТАКСИЧЕСКАЯ ДИАГРАММА

Из синтаксической диаграммы видно, что в этом операторе не обязательно использовать для тела цикла операторные скобки. Здесь ключевые слова REPEAT и UNTIL сами играют роль этих скобок.

В этом операторе тело цикла выполняется до тех пор, пока ложно условие, стоящее после UNTIL. Условием выхода из цикла является истинность выражения. Мы видим, что это есть форма "цикла-до".

 

Блок-схема оператора REPEAT

 

Пример. Даны числа A, B (A>1). Получить все степени числа A, меньшие числа B

 

program STEPENI;

var A,B,C: real;

begin

readln(A,B); C:=A;

repeat

writeln(C);

C := C*A;

until C >= B;

end.

 

ПРИМЕЧАНИЕ. Между операторами WHILE и REPEAT существуют три основных различия.

1. В операторе REPEAT проверка условия выхода из цикла выполняется в конце, а не в начале цикла, как в операторе WHILE. Поэтому в операторе REPEAT тело цикла выполняется хотя бы один раз.

2. В REPEAT выход из цикла осуществляется по истинности условия, а в WHILE - по ложности.

3. В операторе WHILE тело цикла чаще всего имеет форму составного оператора, в операторе REPEAT для организации тела цикла операторные скобки не нужны.