GoSub...Return
GoSubは、プログラム制御をサブルーチンに移行します。サブルーチンの実行が終わると、制御はGoSub命令の次の行に戻ります。
書式
GoSub {ラベル}
{ラベル:}
ステートメント
Return
パラメーター
- ラベル
- 移行先をラベルで指定します。そのラベルがある行にプログラム実行は移行します。ラベル名は、32文字以内で指定してください。ただし、最初の文字には数字は使えません。必ずアルファベット文字を用いてください。
解説
GoSub命令は、指定のラベルにプログラム制御を移します。プログラムは移行先のステートメントを実行し、Return命令まで、そのまま移行先の行を実行していきます。GoSub命令は、サブルーチンの実行を行ってからReturnによって、GoSub命令の次の行に戻ります。サブルーチンは必ずReturnで終わらせてください。
起こりやすいエラー
存在しないステートメントへの移行
GoSub命令が存在しないラベルを移行先に指定すると、エラー3108が発生します。
GoSubがないのにReturnが使われているとき
Return命令は、GoSub命令を実行したもとのプログラムへの復帰を行います。もし、GoSubがないのにReturnが使われているとエラー2383が発生します。GoSubなしでReturnが使われても、どこに復帰してよいかわからないので意味を持ちません。
GoSub使用例
下記は、GoSub命令を使って指定ラベルに移り、I/O命令をいくつか実行して復帰するという簡単な例です。
Function main
Integer var1, var2
GoSub checkio 'ラベルを使用してGoSubを実行
On 1
On 2
Exit Function
checkio: 'サブルーチンの開始位置
var1 = In(0)
var2 = In(1)
If var1 = 1 And var2 = 1 Then
On 1
Else
Off 1
EndIf
Return 'サブルーチンの終了位置
Fend