ON...GOTO (Statement)


Unconditionally branch to the specified label depending upon the value of an expression.


ON <expression> GOTO <labelname> [,<labelname>]...


This statement transfers control to the label specified by the "nth" <labelname> depending upon the value "n" of <expression>. These <labelname>s are counted, starting from left to right.
If the value of <expression> is real, the system truncates it to an integer "n."
If the operation result of <expression> exceeds the number of <labelname>s, this statement produces nothing.



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
'If the index is 6
END
'Declare the end of motion executed by the program
END SELECT
'Declare the end of conditions evaluation statement


Top