Next: , Previous: if Statement, Up: Statements



6.1.7.4 case Statement

     case expression of
       selector: statement;
       ...
       selector: statement;
     end

or, with alternative statement sequence:

     case ordinal_expression of
       selector: statement;
       ...
       selector: statement;
     otherwise                   { ``else'' instead of ``otherwise'' allowed }
       statement;
       ...
       statement;
     end

or, as part of the invariant record type definition:

     type
       foo = record
         field_declarations
       case bar: variant_type of
         selector: (field_declarations);
         selector: (field_declarations);
         ...
       end;

or, without a variant selector field,

     type
       foo = record
         field_declarations
       case variant_type of
         selector: (field_declarations);
         selector: (field_declarations);
         ...
       end;

The case statement compares the value of ordinal_expression to each selector, which can be a constant, a subrange, or a list of them separated by commas, being compatible with the result of ordinal_expression. Note: duplicate selectors or range crossing is not allowed unless {$borland-pascal} is specified. In case of equality the corresponding statement is executed. If otherwise is specified and no appropriate selector matched the expression, the series of statements following otherwise is executed. As a synonym for otherwise, else can be used. The semicolon before otherwise is optional.

@@ ???? The expression must match one of the selectors in order to continue, unless an alternative statement series is specified.

For case in a variant record type definition, see Record Types.

See also

if Statement