Оператор цикла с параметром FOR

Оператор цикла с параметром вводится для организации “строгих” циклов, которые должны быть проделаны заданное число раз. Кроме того, циклы с параметром позволяют организовать автоматическое изменение значения некоторой переменной в определенном диапазоне.

Синтаксис оператора FOR:

FOR ПараметрЦикла:= МладшееЗначение TO СтаршееЗначение DO Оператор;

или

FOR ПараметрЦикла:= СтаршееЗначение DOWNTO МладшееЗначение DO Оператор;

Оператор, представляющий собой тело цикла, может быть как простым, так и составным. Параметр цикла, а также диапазон его значений (от стартового до конечного включительно) может быть только порядкового (целочисленного. символьного, логического) или перечислимого типа! Параметр цикла это обычная переменная, описанная в текущем блоке. Шаг изменения значения параметра цикла всегда постоянный (в случае целочисленного типа равен единице).

Изменение параметра цикла может быть как возрастающим, так и убывающим. В первом случае МладшееЗначение должно быть больше чем Старшее, а во втором – наоборот.

Примеры оформления циклов с параметром.

VAR i: integer;

BEGIN

FOR i:= 1 TO 10 DO Write(i:5);

FOR i:= 5 DOWNTO 0 DO Write(i:5)

END.

На месте младших и старших значений могут стоять константы, а могут и переменные или выражения, совместимые по присваиванию с параметром цикла. Например,

CONST n = 10;

m = 3;

VAR i,

k: integer;

BEGIN

k:= 1;

FOR i:= k TO n DO Write(i:5);

FOR i:= (m+2) DOWNTO 0 DO Write(i:5)

END.

Выполнение цикла начинается с присваивания параметру стартового значения. Затем следует проверка, не превосходит ли параметр конечное значение (случай с TO) или не является ли он меньше конечного значения (случай с DOWNTO). Если результат проверки утвердительный, то цикл считается завершенным. В противном случае выполняется тело цикла (оператор, следующий за словом DO), и после этого параметр цикла меняет свое значение на следующее. Далее снова производится проверка значения параметра цикла, т.е. алгоритм повторяется.

Запрещается изменять параметр цикла и его старшее и младшее значения внутри тела цикла. Кроме того, параметр цикла не может участвовать в построении диапазонов этого же цикла. Компилятор таких “незаконных” действий не замечает, но программа, содержащая цикл с заголовком типа

FOR i:= i-5 TO i+5 DO...;

не заслуживает никакого доверия, даже если запускается!

Операторы FOR могут быть вложенными друг в друга, например

VAR

i,j: integer;

BEGIN

WriteLn(‘Таблица умножения’);

FOR i:= 1 TO 10 DO begin

FOR j:= 1 TO 10 DO Write((i*j):5);

WriteLn;

end;

END.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: