Оператор цикла FOR является безусловным оператором цикла, т.е. позволяет выполнять действие определённое количество раз.
Оператор | Модуль | Назначение | Пример |
FOR | SYSTEM | Повторение заданной последовательности операторов определённое количество раз. Форма записи: <п.ц.> параметр цикла, переменная целого типа;FOR <п.ц.>:=<н.з.> TO <к.з.> DO <оператор>; <н.з.> начальное значение; <к.з.> конечное значение; <оператор> исполнительный оператор. TO увеличение <п.ц.> на 1; |
VAR I : INTEGER; S, C : REAL; BEGIN ... FOR I:=1 TO 10 DO BEGIN WRITELN(I); READLN(C); S:=S+C; END; ... END. |
При выполнении оператора цикла FOR вначале вычисляется выражение <н.з.> (начальное значение) и осуществляется присваивание <п.ц.> (параметру цикла) := <н.з.> (начального значения). После этого циклически повторяется:
Вопервых, условие, управляющее работой оператора FOR, проверяется перед выполнением оператора <оператор>: если условие не выполняется в самом начале работы оператора FOR, исполняемый оператор не будет выполнен ни разу.
Вовторых, шаг изменения параметра цикла (при использовании TO) строго постоянен и равен (+1).
Существует другая запись оператора:
FOR <п.ц.> := <н.з.> DOWNTO <к.з.> DO <оператор>;
Замена зарезервированного слова TO на DOWNTO означает, что шаг изменения параметра цикла равен (-1), а управляющее условие приобретает вид <п.ц.> >= <к.з.> (конечное значение).
Количество повторений вычисляется по следующим формулам:
TO: <к.з.> <н.з.> + 1; DOWNTO: <н.з.> <к.з.> + 1;
Program Oper_For; Var I : Integer; St : String; BEGIN Write('Введите слово: '); Readln(St); Writeln('Повторяю 10 раз...'); For I:=1 To 10 Do Writeln(St); END.