Справочное руководство по Ada 2005
5.3 Операторы if
Оператор if_statement выбирает для выполнения не более одного из вложенных sequences_of_statements, в зависимости от (истинностного) значения одного или нескольких соответствующих условий.
Синтаксис
if_statement ::=
if условие then
последовательность_операторов
{elsif условие then
последовательность_операторов}
[else
последовательность_операторов]
end if;
if условие then
последовательность_операторов
{elsif условие then
последовательность_операторов}
[else
последовательность_операторов]
end if;
Правила разрешения имен
Ожидается, что условие будет любого булевого типа.
Динамическая семантика
Для выполнения оператора if_statement, условие, указанное после if, и любые условия, указанные после elsif, вычисляются последовательно (рассматривая заключительное else как elsif True then), пока одно из них не примет значение True или все условия не будут вычислены и дадут результат False. Если условие принимает значение True, то соответствующая последовательность_операторов выполняется; в противном случае ни одна из них не выполняется.
Примеры
Примеры операторов if:
if Month = December and Day = 31 then
Month := January;
Day := 1;
Year := Year + 1;
end if;
Month := January;
Day := 1;
Year := Year + 1;
end if;
if Line_Too_Short then
raise Layout_Error;
elsif Line_Full then
New_Line;
Put(Item);
else
Put(Item);
end if;
raise Layout_Error;
elsif Line_Full then
New_Line;
Put(Item);
else
Put(Item);
end if;