Операторы цикла с параметром (которые начинаются со слова for) вызывает повторяющееся выполнение оператора (который может быть составным оператором) пока управляющей переменной присваива- ется возрастающая последовательность значений.
----¬ ------------¬ ---¬ ---------¬ оператор --->¦for+-->¦управляющая+-->¦:=+-->¦исходное+---¬ for L---- ¦переменная ¦ L--- ¦значение¦ ¦ L------------ L--------- ¦ -------------------------------------------------- ¦ ---¬ ¦ -->¦to+-----¬ ---------¬ ---¬ ---------¬ L---+ L--- +-->¦конечное+-->¦do+-->¦оператор+---> ¦ -------¬ ¦ ¦значение¦ L--- L--------- L->¦downto+-- L--------- L-------
-------------------------¬ управляющая переменная --->¦идентификатор переменной+---> L-------------------------
----------¬ исходное значение ---->¦выражение+---> L----------
----------¬ конечное значение ---->¦выражение+---> L----------
В качестве управляющей переменной должен использоваться идентификатор переменой (без какого-либо квалификатора), который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. Управляющая переменная должна иметь пе- речислимый тип. Начальное и конечное значения должны иметь тип, совместимый по присваиванию с перечислимым типом.
Примечание: О локальности и области действия рассказы- вается в Главе 8.
Когда начинает выполняться оператор for, начальное и конеч- ное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for.
Оператор, который содержится в теле оператора for, выполня- ется один раз для каждого значения в диапазоне между начальным и конечным значением. Управляющая переменная всегда инициализирует- ся начальным значением. Когда работает оператор for, значение уп- равляющей переменной (счетчика циклов) увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле оператора for оператор не выпол- нятся. Когда в операторе цикла используется ключевое слово downto, значение управляющей переменной уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполнятся.