SELECT CASE (Statement)


Execute the statement block associated with the matching condition out of multiple conditions.


SELECT CASE <expression>
CASE <item>[,<item>...]
:
[CASE ELSE]
END SELECT


This statement evaluates <expression> and compares it with <item> of the first CASE statement. If a match is found, the statement block following the first CASE statement is executed. If the <item> of the first CASE statement does not match, comparisons are made with <item> of the subsequent CASE statement.
<expression> is an arithmetic expression or a character string.
<item> is a variable, a constant, an expression or a conditional expression. The conditional expression can be specified as follows.
  • <arithmetic expression 1> TO <arithmetic expression 2>
    This checks whether the result of <expression> is any value between <arithmetic expression 1> and <arithmetic expression 2>. The TO keyword cannot be used if <expression> is a character string.
  • IS <comparison operator> <arithmetic expression>
    This compares the result of <expression> with the value of <arithmetic expression>. If <expression> is a character string, <comparison operator> can be "=" only.
The CASE ELSE statement executes if <expression> does not match any of CASE statements.
CASE ELSE should precede END SELECT.



REM Evaluate more than one condition
SELECT CASE Index
'If the index value and the CASE statement value match,
'the command executes
CASE 0
'If the index is 0
STOP
'Stop program execution
CASE 1
'If the index is 1
HALT "STOP"
'Stop program execution
CASE 2
'If the index is 2
HOLD "STOP"
'Stop program execution temporarily
CASE 3
'If the index is 3
STOPEND
'Cycle-stop a continuously executed program
CASE 4
'If the index is 4
ON li1 + li2 GOSUB *samp1, *samp2, *samp3
'Call a subroutine beginning with the nth labelname
'depending upon the value n of li1+li2
CASE 5
'If the index is 5
ON li1 + li2 GOTO *samp1, *samp2, *samp3
'Jump to the nth label depending upon the value n of li1+li2
CASE 6 TO 8
'If the index is 6 to 8
PRINTDBG "Reservation"
'Output a message to the debug window
CASE IS ≥ 9
'If the index is 9 or greater
END
'Declare the end of motion executed by the program
END SELECT
'Declare the end of conditions evaluation statement


Top