Руководство по Ada (Ada 2022)
5.3 Операторы if
Оператор if_statement выбирает для выполнения не более одного из вложенных sequences_of_statements, в зависимости от (истинности) значения одного или нескольких соответствующих условий.
Синтаксис
if_statement ::=
if условие then
последовательность_операторов
{elsif условие then
последовательность_операторов}
[else
последовательность_операторов]
end if;
if условие then
последовательность_операторов
{elsif условие then
последовательность_операторов}
[else
последовательность_операторов]
end if;
Абзацы 3 и 4 были удалены.
Динамическая семантика
Для выполнения оператора 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;