Contents Index Previous Next
5.3 If Statements
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.]
Syntax
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
Name Resolution Rules
4
{expected type (condition)
[partial]} A
condition
is expected to be of any boolean type.
Dynamic Semantics
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.
Examples
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;
Contents Index Previous Next Legal