Propeller Manual

Table Of Contents
CASE – Spin Language Reference
you can press Ctrl + I to turn on block-group indicators. Pressing Ctrl + I again will disable
that feature. See the Propeller Tool Help for a complete list of shortcut keys.
Using CASE
CASE is handy where one of many actions needs to be performed depending on the value of an
expression. The following example assumes
A, X and Y are variables defined earlier.
case X+Y 'Test X+Y
10, 15: !outa[0] 'X+Y = 10 or 15? Toggle P0
A*2 : !outa[1] 'X+Y = A*2? Toggle P1
30..40: !outa[2] 'X+Y in 30 to 40? Toggle P2
X += 5 'Add 5 to X
Since the MatchExpression lines are indented from the CASE line, they belong to the CASE
structure and are executed based on the CaseExpression comparison results. The next line,
X += 5, is not indented from CASE, so it is executed regardless of the CASE results.
This example compares the value of
X + Y against 10 or 15, A*2 and the range 30 through
40. If X + Y equals 10 or 15, P0 is toggled. If X + Y equals A*2, P1 is toggled. If X + Y is in
the range
30 through 40, inclusive, then P2 is toggled. Whether or not any match was found,
the
X += 5 line is executed next.
Using OTHER
The optional
OTHER component of CASE is similar to the optional ELSE component of an IF
structure. For example:
case X+Y 'Test X+Y
10, 15: !outa[0] 'X+Y = 10 or 15? Toggle P0
25 : !outa[1] 'X+Y = 25? Toggle P1
20..30: !outa[2] 'X+Y in 20 to 30? Toggle P2
OTHER : !outa[3] 'Otherwise toggle P3
X += 5 'Add 5 to X
This example is similar to the last one except that the third MatchStatement checks for the
range 20 to 30 and there’s an
OTHER component. If X + Y does not equal 10, 15, 25, or is not
in the range 20 to 30, the Statement(s) block following
OTHER is executed. Following that, the
X += 5 line is executed.
There is an important concept to note about this example. If
X + Y is 10 or 15, P0 is toggled,
or if
X + Y is 25, P1 is toggled, or if X + Y is 20 to 30, P2 is toggled, etc. This is because the
MatchExpressions are checked, one at a time, in the order they are listed and only the first
Page 60 · Propeller Manual v1.1