ПРИМЕЧАНИЕ. Операторы тела повторяются, пока условие равно 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;
При выполнении цикла на экран выводится:
Дата добавления: 2015-03-07; просмотров: 567;