5.3. If Statements
This Reference Manual output has not been verified, and may contain omissions or errors. Report any problems on the tracking issue
[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.]
Syntax
2if_statement ::=
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
Paragraphs 3 and 4 were deleted.
Dynamic Semantics
5/3For 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.
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.
Examples
6Examples of if statements:
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;