Цикл for
Еще одним распространенным случаем является ситуация когда необходимо выполнить некоторые действия заданное количество раз, то есть организовать счетный цикл. Для этого Ада предусматривает конструкцию цикла for.
Конструкция цикла for Ады аналогична конструкции цикла for, представленной в языке Паскаль.
Существует несколько правил использования цикла for:
- тип переменной-счетчика цикла for определяется типом указываемого диапазона значений счетчика, и должен быть дискретного типа, вещественные значения - недопустимы
- счетчик не может быть модифицирован в теле цикла, другими словами - счетчик доступен только по чтению
- область действия переменной-счетчика распространяется только на тело цикла
Примечательно также, что тело цикла не будет выполняться если при указании диапазона значений переменной-счетчика величина значения "нижней границы" будет больше чем величина значения "верхней границы".
for счетчик in диапазон_значений_счетчика loop
-- инструкции тела цикла end loop; for Count in 1..20 loop Put (Count); end loop; |
Возможен перебор значений диапазона в обратном порядке:
for счетчик in reverse диапазон_значений_счетчика loop
-- инструкции тела цикла end loop; for Count in reverse 1..20 loop Put (Count); end loop; |
Любой дискретный тип может использоваться для указания диапазона значений переменной-счетчика.
declare
subtype List is Integer range 1..10; begin for Count in List loop Put (Count); end loop; end; |
Здесь, тип List был использован для указания диапазона значений переменной-счетчика Count. Подобным образом также можно использовать любой перечислимый тип.