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
3/3
Name Resolution Rules
4/3
Paragraphs 
3 and 4 were deleted. 
Dynamic Semantics
5/3
{
AI05-0264-1} 
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;
 
Wording Changes from Ada 2005
9.a/3
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe