GOSUB

プチコン3号 プチコンBIG 

指定したラベルの場所のサブルーチンを実行

GOSUB [slot:]@label GOSUB [slot:]str

パラメーター

slotプログラムSLOT番号
labelラベル名(英数字とアンダースコア(_)が使用可。先頭が数字でもよい。大文字と小文字は区別されない)
strラベル名を表す文字列(変数など)

解説

ラベルの場所にあるサブルーチン(色々な場所から呼び出せる、よく使うプログラムの集合)を呼び出します。サブルーチンの中のRETURN文で、呼び出したGOSUBに処理を戻します。RETURN文は必須です。
DEFなどのユーザー関数と違い、値を渡したり、戻り値を設定する事はできません。

サンプルコード

画面に「A」を表示し続けるプログラム(これは動作サンプルであり、Aを表示させるだけならこのように書く意味はありません。)
@MAINLOOP      'ここを MAINLOOP という名前にする
GOSUB @SUB     '@SUB という場所にジャンプして、後で戻ってくる
GOTO @MAINLOOP 'MAINLOOP に飛ぶ
 
@SUB      'ここを SUB という名前にする
PRINT "A" '画面に「A」と表示
RETURN    'SUBを呼び出したGOSUB文に戻る
このようにも書ける
A$="@MAINLOOP"

参照

@ プログラムの任意の場所を示すラベル(名前)
GOTO 指定したラベルの場所にジャンプ
GOSUB 指定したラベルの場所のサブルーチンを実行
RETURN サブルーチンの処理を終了し、元の場所に処理を戻します
ON~GOTO,GOSUB~ idxの値を参照し、指定したラベルにジャンプ
IF~THEN~ELSEIF~ELSE~ENDIF もし~なら…の条件式で処理を分岐
FOR~NEXT 同じ処理をカウント数だけ繰り返す
WHILE~WEND 同じ処理を、指定条件を満たしている間繰り返す
REPEAT~UNTIL 同じ処理を、指定条件を満たすまで繰り返す
CONTINUE ループ処理をスキップし、次に進む
BREAK ループ処理を終了する
END プログラムを終了する
STOP プログラムを中断させる

Facebookコメント