Branching with CASE statements
Submitted by taoyue on Thu, 01/06/2011 - 20:52
Suppose you wanted to branch one way if b is 1, 7, 2037, or 5; and another way if otherwise. You could do it by:
if (b = 1) or (b = 7) or (b = 2037) or (b = 5) then
Statement1
else
Statement2;
Statement1
else
Statement2;
But in this case, it would be simpler to list the numbers for which you want Statement1 to execute. You would do this with a case statement:
case b of
1,7,2037,5: Statement1;
otherwise Statement2
end;
1,7,2037,5: Statement1;
otherwise Statement2
end;
The general form of the case statement is:
     case selector of
        List1:    Statement1;
        List2:    Statement2;
        ...
        Listn:    Statementn;
        otherwise Statement
     end;
        List1:    Statement1;
        List2:    Statement2;
        ...
        Listn:    Statementn;
        otherwise Statement
     end;
The otherwise part is optional. When available, it differs from compiler to compiler. In many compilers, you use the word else instead of otherwise.
selector is any variable of an ordinal data type. You may not use reals!
Note that the lists must consist of literal values. That is, you must use constants or hard-coded values -- you cannot use variables.