ПРИМЕЧАНИЕ

Возможны сокращенные формы оператора (отсутствует ветвь elsif, ветвь else).

 

Оператор выбора позволяет сделать выбор из произвольного количества вариантов, имеет вид

case < выражение > is

when <список выбора 1> =>

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

when <список выбора n> =>

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

when others =>

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

end case;

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

1) вычисляется значение выражения;

2) каждый список выбора (от первого до последнего) проверяется на соответствие значению;

3) если найдено соответствие, то выполняется соответствующая последовательность операторов, после чего происходит выход из оператора case;

4) если не найдено соответствие, то выполняются операторы, указанные после условия when others.

Элементы списка выбора отделяются друг от друга вертикальной чертой ('|') и могут иметь следующий вид:

q <выражение>;

q <выражение n>..<выражение m>.

Примеры:

case Number is

when 1 | 7 => Put ("Is 1 or 7");

when 5 => Put ("Is 5");

when 25..100 => Put ("Is number between 25 and 100");

when others => Put ("Is unknown number");

end case;

case Answer is

when 'A'..'Z' | 'a'..'z' => Put_Line ("It's a letter!");

when others => Put_Line ("It's not a letter!")

end case;

Оператор блока объединяет последовательность операторов в отдельную структурную единицу, имеет вид

declare

<последовательность объявлений>

begin

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

end;

ПРИМЕЧАНИЕ

Объявления из раздела declare действуют только внутри раздела операторов блока.

 

Пример:

declare

Ch : Character;

begin

Ch := 'A';

Put ( Ch );

end;

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

 

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

loop

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

exit when <условие выхода>

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

end loop;

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

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

1. Выполняется последовательность операторов 1.

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

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