5.3 If Statements
[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
Name Resolution Rules
{expected type (condition)
[partial]} A
condition
is expected to be of any boolean type.
Dynamic Semantics
{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.
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.
Examples
Examples of if statements:
if Month = December and Day = 31 then
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;
if My_Car.Owner.Vehicle /= My_Car
then --
see 3.10.1
Report ("Incorrect data");
end if;