Next: , Previous: 5.2, Up: 5


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
A condition is expected to be of any boolean type.

Dynamic Semantics

5
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.

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;