Table of Contents
SELECT CASE
PET VIC-20 C64 C16 Plus/4 C128 X16 M65
Executes one of several statement blocks depending on the value of an expression.
Syntax
SELECT CASE <expr> CASE <exp1> [, <exp2>, <exp3> ... ] <statements> CASE IS <relational operator> <exp4> <statements> CASE <exp5> TO <exp6> <statements> CASE ELSE <statements> END SELECT
In the first CASE
block above, the value of <expr> is tested against <exp1>, <exp2> and <exp3> and the statement block is executed once one of them equals.
In the second block, a relational operator, <, <=, >, >=, <>, or = is provided and the statement block is executed if the relation evaluates to true. This works with numeric types only.
In the third block, the statement block is executed if <expr> is between <exp5> and <exp6> (inclusive). This works with numeric types only.
If one of the CASE
expressions is tested to be true, the statement block will be executed and control will be passed to the code after END SELECT
. That is to say, at most one statement block will be executed.
If none of the CASE
expressions is tested to be true, control will be passed to CASE ELSE
(if it exists).
Example
DIM a$ AS STRING * 3 again: INPUT "your age? ";a$ age = VAL(a$) SELECT CASE age CASE 0, 1 PRINT "baby" CASE 2, 3 PRINT "toddler" CASE 4 TO 10 PRINT "child" CASE 11 TO 17 PRINT "teenager" CASE IS >= 18 PRINT "adult" CASE ELSE PRINT "invalid value" GOTO again END SELECT