Справочник по Ada 95
5.3 Условные операторы if
Оператор if_statement выбирает для выполнения не более одного из вложенных sequence_of_statements, в зависимости от логического значения одного или нескольких соответствующих conditionов.
Синтаксис
if_statement ::=
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
condition ::= boolean_expression
Правила разрешения имен
Ожидается, что condition будет любого логического типа.
Динамическая семантика
Для выполнения оператора if_statement, condition, указанный после if, и все conditionы, указанные после elsif, вычисляются последовательно (предполагая, что else эквивалентно elsif True then), до тех пор, пока одно из выражений не примет значение True или все conditionы вычислятся и вернут значение False. Если condition принимает значение True, то соответствующая sequence_of_statements выполняется; в противном случае ни одна из них не выполняется.
Примеры
Примеры условных операторов 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;