● ステートメントリファレンス

on n goto 〜 、on n gosub 〜

n に対応したラベルへジャンプします。

    on n goto $ラベル名1 , $ラベル名2 , $ラベル名3 , …

    on n gosub $ラベル名1 , $ラベル名2 , $ラベル名3 , …

ラベル名先頭の $ は省略する事ができます。
n は計算式で記述します。on goto は、n + 1 番目に記述されたラベルにジャンプします(n はゼロベースです)。on gosub はジャンプ前に戻り先をスタックへ保存してからジャンプします。n に対応するラベル名へジャンプする、という事以外は gotogosub と同じです。

on 〜 goto 例.ジャンプ先の処理が終了後、プログラムを終了する場合

        # n = 0 ... $a へジャンプ
        # n = 1 ... $b へジャンプ
        # n = 2 ... $c へジャンプ

        on n goto $a,$b,$c

#-------------------------------------#
    $a
        処理A

        end
#-------------------------------------#
    $b
        処理B

        end
#-------------------------------------#
    $c
        処理C

        end
#-------------------------------------#



on 〜 gosub 例.

        on n gosub $a,$b,$c

        end

#-------------------------------------#
    $a
        処理A

        return  :# on 〜 gosub はサブルーチンの呼び出しなので、return で戻る必要があります
#-------------------------------------#
    $b
        処理B

        return
#-------------------------------------#
    $c
        処理C

        return
#-------------------------------------#

n で指定された値が負の場合や、ステートメントに記述されているラベル名の個数よりも大きい場合はエラーになります。