Если заранее неизвестно число повторений цикла, то используются циклы с условием. В паскале имеется два типа таких циклов. Циклы While называют циклами с пред-условием. Они имеют вид
WHILE <логич.выражение> DO <оператор>;
Цикл While организует выполнение одного (возможно составного) оператора пока истинно логическое выражение, стоящее в заголовке цикла. Поскольку значение логического выражения проверяется в начале каждой итерации, то тело цикла может не выполниться ни разу. Таким образом, в этом цикле логическое выражение - это условие продолжения работы в цикле.
Другой вариант циклов с условием - это циклы Repeat. Их называют циклами с пост-условием. Они имеют вид
REPEAT
<оператор 1> ... <оператор N>
UNTIL <логич.выражение>
Оператор Repeat организует повторяющееся выполнение нескольких операторов до тех пор пока не станет истинным условие, стоящее в Until-части. Тело цикла обязательно выполняется хотя бы один раз. Таким образом, в этом цикле логическое выражение - это условие выхода из цикла.
ПРИМЕР: Нахождение наибольшего общего делителя двух целых чисел с помощью Алгоритма Эвклида.
program Evklid;
var a,b,c:integer;
begin
write('введите два целых числа : ');
readln(a,b);
while b<>0 do
begin
c:=a mod b;
a:=b;
b:=c;
end;
writeln('наибольший общий делитель = ',a);
readln
end.