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


Операторы цикла - часть 2


Перед каждой такой итерацией параметру цикла присваивается соответствующее значение из дискретного диапазона. При отсутствии зарезервированного слова

reverse

эти значения присваиваются в порядке возрастания, при наличии этого слова — в порядке убывания.

Пример оператора цикла без схемы итерации:

loop

GET(CURRENT_CHARACTER); exit when CURRENT_CHARACTER = '*'; end loop;

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

while:

while BID(N).PRICE < CUT_OFF.PRICE loop

RECORD_BID(BID(N).PRICE); N := N + 1; end loop;

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

for:

for J in BUFFER'RANGE loop -&#x2014; правильно даже для пустого диапазона if BUFFER(J) /= SPACE then

PUT(BUFFER(J)); end if; end loop;

Пример оператора цикла с простым именем цикла:

SUMMATION: while NEXT /= HEAD loop -&#x2014; CM. 3.8 SUM := SUM + NEXT.VALUE; NEXT := NEXT.SUCC; end loop SUMMATION;

Примечание.

Область действия параметра цикла простирается от спецификации параметра цикла до конца оператора цикла, а правила видимости таковы, что параметр цикла видим только в пределах последовательности операторов в цикле.

Дискретный диапазон цикла вычисляется только один раз. Использование зарезервированного слова

reverse

не изменяет дискретный диапазон, так что следующие схемы итерации не эквивалентны (в первой &#x2014; диапазон пуст):

for J in reverse 1 .. 0 for J in 0 .. 1

Имена циклов используются также в операторах выхода и в расширенных именах (в качестве префикса имени параметра цикла).

Ссылки:

альтернатива завершения 9.7.1, базовый тип 3.3, видимость 8.3, возбуждение исключений 11, вызов процедуры 6.4, вычисление 4.5, граница диапазона 3.5, дискретный диапазон 3.6.1, зарезервированное слово 2.9, идентификатор 2.3, конкретизация настройки 12.3, константа 3.2.1, контекст разрешения совмещения 8.7, логическое значение FALSE 3.5.3, логическое значение TRUE 3.5.3, область действия 8.2, объект 3.2, оператор возврата 5.8, оператор вызова входа 9.5, оператор выхода 5.7, оператор перехода 5.9, оператор присваивания 5.2, описание 3.1, последовательность операторов 5.1, пред'выполнение 3.1, преобразование 4.6, префикс 4.1, простое имя 4.1, пустой диапазон 3.5, расширенное имя 4.1.3, условие 5.3, фактический параметр 6.4.1, фактический параметр настройки 12.3, целый тип 3.5.4.

Пред. 

Уровень выше  След.

5.4. ОПЕРАТОРЫ ВЫБОРА

 

Начало  

5.6. ОПЕРАТОРЫ БЛОКА




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



Книжный магазин