Примечание. Операторы тела повторяются, пока условие равно False

Операторы тела повторяются, пока условие равно False. В теле должен быть оператор, влияющий на значение условия, иначе цикл будет выполняться бесконечно. В теле цикла возможно использование безусловного оператора выхода exit или условного оператора выхода exit when <условие>.

Пример:

Count:= 1;

loop

Ada.Integer_Text_IO.Put (Count);

exit when Count = 10;

Count:= Count + 1;

end loop:

При выполнении цикла на экран выводится:

Аналогичные вычисления можно задать в следующем виде:

Count:= 1

loop

Ada.Integer_Text_IO.Put (Count);

if Count = 10 then

exit;

end if;

Count:= Count + 1;

end loop;

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

while <условие продолжения> loop

<последовательность операторов>

end loop;

Порядок выполнения.

1. Вычисляется значение условия. Если значение равно True, выполняется переход к пункту 2. В противном случае (при значении False) происходит выход из цикла.

2. Выполняются операторы тела цикла. Осуществляется переход к пункту 1.

Таким образом, это цикл с предусловием.

Перечислим характерные особенности оператора while.

1. Операторы тела могут выполняться нуль и более раз.

2. Операторы тела повторяются, пока условие равно True.

3. В теле должен быть оператор, влияющий на значение условия (для исключения бесконечного повторения).

Пример:

Count:=1;

loop

while Count <= 10 loop

Put (Count):

Count:= Count + 1;

end loop;

При выполнении цикла на экран выводится:

Оператор цикла for обеспечивает организацию циклов с известным количеством повторений. Используются две формы оператора.

Первая форма оператора for имеет вид:

for <параметр цикла> in <дискретный диапазон> loop

<операторы тела цикла>

end loop;

Параметр цикла — это переменная, которая заранее не описывается (в программе). Данная переменная определена только внутри оператора цикла. Параметру цикла последовательно присваиваются значения из дискретного диапазона. Дискретный диапазон всегда записывается в порядке возрастания в виде

min.. max;

Операторы тела повторяются для каждого значения параметра цикла (от минимального до максимального).

Пример:

for Count in 1.. 10 loop

Put (Count);

end loop;

При выполнении цикла на экран выводится:

1 2 3 4 5 б 7 8 9 10

Вторая форма оператора for имеет вид

for <параметр цикла> in reverse <дискретный диапазон> loop

<операторы тела цикла>

end loop;

Отличие этой формы состоит в том, что значения параметру присваиваются в порядке убывания (от максимального к минимальному). Диапазон же задается по-прежнему, в порядке возрастания.

Пример:

for Count in reverse 1.. 10 loop

Put (Count);

end loop;

При выполнении цикла на экран выводится:


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



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