Provides a multi-branch decision based on the value of a single expression.
| CASE expression :
  {  WHEN value [ OR WHEN value ] ... THEN
       { block | statement }
  } ...
  [ OTHERWISE
       { block | statement }
 ]
END [ CASE ] | 
The following fragment shows a simple example of a CASE statement:
r-case.p
| DEFINE VARIABLE pay-stat AS INTEGER NO-UNDO INITIAL 1.
UPDATE pay-stat VIEW-AS RADIO-SET
  RADIO-ITEM unpaid   1 LABEL "Unpaid"
  RADIO-ITEM part     2 LABEL "Partially paid"
  RADIO-ITEM paid     3 LABEL "Paid in full".
CASE pay-stat:
  WHEN 1 THEN
    MESSAGE "This account is unpaid.".
  WHEN 2 THEN  
    MESSAGE "This account is partially paid.".
  WHEN 3 THEN  
    MESSAGE "This account is paid in full.".
END CASE. |