Цикл FOR

В случаях, когда число повторений заранее известно, для организации цик­лической обработки информации применяется оператор повтора FOR.

Часто этот оператор повтора называют оператором цикла с параметром, так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной.

Оператор повтора FOR состоит из заголовка и тела цикла:

прямой вид цикла:
FOR <параметр цикла> := TO DO <оператор>;
обратный вид цикла:
FOR <параметр цикла> := DOWNTO DO <оператор>;
где
S1 и S2 – выражения, определяющие соответственно начальное и конеч­ное значения параметра цикла;

FOR … DO – заголовок цикла;

<оператор> – тело цикла.

Тело цикла может являться простым или составным оператором. Оператор FOR обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного. Заголовок оператора повтора FOR определяет:
– диапазон изменения значений управляющей переменной (параметра цикла) и одновременно число повторений оператора, содержащегося в теле цикла;
– направление изменения значения параметра цикла (возрастание – to или убывание – downto).
Пример:

for I:= 1 to 100 do Read(M[I]); {Чтение элементов массива}

for I: = 100 downto 1 do Write(M[I]); {Вывод элементов массива}

При первом обращении к оператору FOR вначале вычисляются выражения S1, S2 и осуществляется присваивание «параметр цикла>:=51. После этого циклически повторяются следующие действия.

1. Проверяется условие <параметр цикла>:<=S2.
2. Если условие выполнено, то оператор FOR продолжает работу (выполняет­ся оператор в теле цикла), если условие <параметр цикла>:<=52 не выпол­нено, то оператор FOR завершает работу, и управление в программе переда­ется на оператор, следующий за циклом.
3. Значение управляющей переменной изменяется на +1 (TO) или -1 (DOWNTO) и далее с п. 1. Обратите внимание, что шаг изменения управляющей пере­менной – единица.

На использование управляющей переменной (параметра цикла) в цикле FOR накладываются следующие ограничения.

1. В качестве параметра должна использоваться простая переменная, опи­санная в текущем блоке.

2. Управляющая переменная должна иметь дискретный тип.
3. Начальные и конечные значения диапазона должны иметь тип, совмести­мый с типом управляющей переменной. При этом допустим любой ска­лярный тип, кроме вещественного.
4. В теле цикла запрещается явное изменение значения управляющей пере­менной (например, при помощи оператора присваивания).
5. После завершения оператора значение управляющей переменной стано­вится неопределенным, если только выполнение оператора не было пре­рвано оператором перехода.
Добавить комментарий