Name

Case Keyword

Syntax

case Ordinal expression of
  Ordinal range: Statement;
  Ordinal range, Ordinal range, ...: Statement
  else Statements...;
end;

type Name = record
  Declarations...
case Ordinal type of
  Ordinal range: (Declarations...);
  Ordinal range, Ordinal range, ...: (Declarations...);
end;

type Name = record
  Declarations...
case MemberName: Ordinal type of
  Ordinal range: (Declarations...);
  Ordinal range, Ordinal range, ...: (Declarations...);
end;

Description

The case statement selects one branch out of many possible branches, depending on the value of an ordinal-type expression. Delphi’s case statement extends that of standard Pascal by including the optional else condition. If no other case matches the expression, Delphi executes the else statements. The else clause is similar to the otherwise clause found in other Pascal extensions.

The case keyword can also be used in a record type declaration, to declare a variant record. See the record keyword for details.

The type of the case expression must be an ordinal type, that is, integer, character, or enumeration. Each case selector must be a constant expression of the appropriate type or a constant range (constant .. constant). The cases can be in any order, but the else clause must be last. Case selectors must be unique. Each case must have a single statement, except that you can have many statements after the else.

Tips and Tricks

If the case expression is an enumerated type, and the cases cover all possible values of the type, ...

Get Delphi in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.