SELECT
SELECT Expression
[ CASE [ Expression ] [ TO Expression #2 ] [ , ... ]
... ]
[ CASE [ Expression ] [ TO Expression #2 ] [ , ... ]
... ]
[ CASE LIKE Expression [ , ... ]
... ]
[ { CASE ELSE | DEFAULT }
... ]
END SELECT
Selects the
first true condition from a list of cases, and executes
only the code enclosed in the corresponding matching
CASE
statement
ignoring the rest.
If no
CASE
statement matches, the
DEFAULT
or
CASE ELSE
statement is executed.
A
CASE
statement is a list of single values or interval of two values separated by the
TO
keyword.
The first expression is optional:
CASE TO Expression
will match all values up to
Expression.
Expressions can be a comma separated list, Eg:
CASE "A", "B", "C"
Also, you can match against a regular expression with the
CASE LIKE
syntax.
Note
The
TO
keyword can also be used without a lower bound which makes the case like a
less than
range. For example.
CASE TO 0
will act as
CASE < 0
and since the cases are evaluated in succession
CASE TO -1
...
CASE TO 1
....
CASE ELSE
....
provides an effective range filter for -infinity ... -1 ... 1 ... infinity.
Example
' You want to check the random function of a dice.
' So you repeat the random function a thousand times
' and you count, how many times 1, 2, 3, 4, 5 or 6
' have been thrown.
DIM x AS Integer
DIM w AS Integer
DIM a AS Integer
DIM b AS Integer
DIM c AS Integer
DIM d AS Integer
DIM e AS Integer
DIM f AS Integer
FOR x = 1 TO 1000
w = Int(Rnd(6) + 1)
SELECT w
CASE 1
a = a + 1
CASE 2
b = b + 1
CASE 3
c = c + 1
CASE 4
d = d + 1
CASE 5
e = e + 1
CASE 6
f = f + 1
CASE ELSE
PRINT "This is impossible!"
END SELECT
NEXT
PRINT a, b, c, d, e, f
Example using CASE LIKE
Select sFilename
CASE LIKE "*.{png,jpg,jpeg,bmp}"
RunForImages(sFilename)
CASE ELSE
RunForOtherFiles(sFilename)
End Select
See also