1
[An if_statement selects for execution at most one of the enclosed sequences_of_statements, depending on the (truth) value of one or more corresponding conditions.]
2
if_statement::=
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
3
condition::= boolean_expression
4
{expected type (condition) [partial]} A condition is expected to be of any boolean type.
5
{execution (if_statement) [partial]} For the execution of an if_statement, the condition specified after if, and any conditions specified after elsif, are evaluated in succession (treating a final else as elsif True then), until one evaluates to True or all conditions are evaluated and yield False. If a condition evaluates to True, then the corresponding sequence_of_statements is executed; otherwise none of them is executed.
5.a
Ramification: The part about all evaluating to False can't happen if there is an else, since that is herein considered equivalent to elsif True then.
6
Examples of if statements:
7
if Month = December and Day = 31 then Month := January; Day := 1; Year := Year + 1; end if;
8
if Line_Too_Short then raise Layout_Error; elsif Line_Full then New_Line; Put(Item); else Put(Item); end if;
9
if My_Car.Owner.Vehicle /= My_Car then −− see 3.10.1 Report ("Incorrect data"); end if;