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 condition
s.]
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 condition
s specified after elsif, are evaluated in succession (treating a final else as elsif True then), until one evaluates to True or all condition
s 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;