Все три указанных выше объекта должны быть одного порядкового типа.
<оператор> - тело цикла.
Этот оператор цикла выполняется следующим образом:
Вычисляются значения выражения 1 и выражения 2.
Параметру цикла присваивается начальное значение.
Параметр цикла сравнивается с конечным значением. Если параметр цикла меньше или равен конечному значению, то перейти к п.4, иначе - конец цикла (переход на следующий оператор после оператора цикла).
Выполняется тело цикла. Параметр цикла принимает следующее значение, полученное с помощью функции Succ(увеличивается на 1).
Переход к п.3.
Есть еще один вариант этого оператора цикла, когда параметр цикла после каждого выполнения тела цикла принимает следующее значение, полученное с помощью функции Pred(уменьшается на 1). В этом случае служебное слово To заменяется на Dowto и цикл идет до тех пор, пока параметр цикла не станет строго меньше конечного значения.
Пример. Вычислить и напечатать первые 10 чисел Фибоначчи. Числа Фибоначчи образуют последовательность, в которой очередной член равен сумме двух предыдущих, а первые два равны единице.
Решение:
Program Fib;
Сonst n=10; {количество чисел}
Var i,f1,f2,f3:Integer;
Begin
f1 := 1; f2 := 1; {первые два числа Фибоначчи}
For i := 3 To n Do
Begin
f3 := f1 + f2; {следующее число}
Writeln(f3);
f1 := f2; f2 := f3
End
End.
Оператор цикла с предусловием
While <логическое выражение> Do <оператор>;
Здесь, тело цикла выполняется до тех пор, пока логическое выражение возвращает значение True.