ON...GOSUB  (ステートメント)  【SLIM準拠】


式の値に応じて、対応するサブルーチンの呼び出しを行ないます。


ON <式> GOSUB <ラベル名>[,<ラベル名>]…


<式>の値と同じ順位に書かれたラベルへジャンプして、プログラムの実行を継続します。このときの順位は、左から1、2、…と数えます。
<式>の値が実数のときは、その値を超えない最大の整数に丸められた後処理します。
式の結果が順位を超えていた場合は、何も実行しません。


ON...GOTORETURN、SELECT CASE


GOSUB(ON...GOSUB)で呼び出されたサブルーチンから呼び出し元に戻る場合は、RETURN文を使用する必要があります。


REM 複数条件判断を行ないます。
SELECT CASE Index
'Indexの値がCASE文の値と一致した場合、そのコマンドが
'実行されます。
CASE 0
'Indexが0の場合。
STOP
'プログラムを終了します。
CASE 1
'Indexが1の場合。
HALT "STOP"
'プログラム実行を一時停止します。
CASE 2
'Indexが2の場合。
HOLD "STOP"
'プログラム実行を一時停止します。
CASE 3
'Indexが3の場合。
STOPEND
'連続起動されたプログラムをサイクル停止します。
CASE 4
'Indexが4の場合。
ON li1 + li2 GOSUB *samp1, *samp2, *samp3
'li1 + li2の値と同じ順位に書かれた
'ラベル名のサブルーチンを呼び出します。
CASE 5
'Indexが5の場合。
ON li1 + li2 GOTO *samp1, *samp2, *samp3
'li1 + li2の値と同じ順位に書かれた
'ラベルへジャンプします。
CASE 6
'Indexが6の場合。
END
'プログラムによる動作の終了を宣言します。
END SELECT
'複数条件判断文の終了を宣言します。