Справочное руководство по языку Ада-83


Операторы цикла


Оператор цикла содержит последовательность операторов, выполнение которой повторяется несколько раз или ни одного раза.

\

оператор-цикла ::= [простое-имя-цикла:] [схема-итерации] loop

последовательность - операторов end loop [простое-имя-цикла]; схема-итерации ::= while условие | for спецификация-параметра-цикла спецификация-параметра-цикла ::= идентификатор in [reverse] дискретный-диапазон

Если в операторе цикла используется простое имя цикла, то оно должно задаваться как в начале, так и в конце этого оператора.

Оператор цикла без схемы итерации определяет повторяемое выполнение последовательности операторов. Выполнение такого оператора цикла заканчивается выходом из цикла вследствие выполнения оператора выхода или какой-либо другой передачи управления (см. 5.1).

Для оператора цикла со схемой итерации

while

перед каждым выполнением последовательности операторов вычисляется условие; если значением условия является TRUE, то последовательность операторов выполняется, если FALSE, то выполнение оператора цикла заканчивается.

Для оператора цикла со схемой итерации

for

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

параметра цикла с

заданным в схеме итерации идентификатором. Параметр цикла — это объект, типом которого является базовый тип дискретного диапазона (см. 3.6.1). В пределах последовательности операторов параметр цикла считается константой. Поэтому его использование в качестве переменной в левой части оператора присваивания недопустимо. Параметр цикла не должен использоваться в качестве параметра вида

out

или

in out

оператора вызова процедуры или входа, а также в качестве параметра вида

in out

конкретизации настройки.

Для выполнения оператора цикла с итерационной схемой for сначала предвыполняется спецификация параметра цикла. При этом создается параметр цикла и вычисляется дискретный диапазон.

Если дискретный диапазон пуст, то выполнение оператора цикла заканчивается. В противном случае последовательность операторов выполняется по одному разу для каждого значения из дискретного диапазона (при условии, что не происходит выхода из цикла из-за выполнения оператора выхода или какой-либо другой передачи управления).




Начало  Назад  Вперед