GOTO
GOTO 指定行へのジャンプ(制御命令)
書式
GOTO 行番号
GOTO "ラベル"
説明
プログラムの実行を行番号、"ラベル"で指定した行にジャンプします。
行番号には数値、式(変数、関数を含む)が利用可能です。
ラベルを指定した場合、行先頭に同じラベルがある行にジャンプします。
ラベルはダブルクオテーション( " )で囲って指定します。
code:goto_sample1.bas
10 I=0
20 "LOOP"
30 PRINT "@"
40 I=I+1:IF I=5 GOTO 60
50 GOTO "LOOP"
60 END
上記の例では、40行のGOTOで60行にジャンプ、50行のラベル指定で20行にジャンプしています。
ラベルを使うとプログラムの流れがわかりやすくなります。
行の先頭に無いラベルは、ジャンプ先としての利用は出来ません。
code:goto_sample2.bas
10 GOTO "hoge"
20 END
30 ? "Hello":"hoge":?"test"
run
Undefined line number or label in 10
10 GOTO "hoge"
OK
行番号には式や変数の指定が可能ですが、RENUMコマンドよる行番号付け替えに対応出来ない場合があります。 ①GOTO N*100+500
②GOTO 500+N*100+500
①ではRENUMコマンドは何もしません。②は500を号番号とみなして更新します。 ただし①②とも計算結果が正しい行番号となることは保証出来ません。ご注意下さい。
エラーメッセージ
Undefined line number or label :指定した行、ラベルが存在しない
Overflow :指定した数値が-32768 ~ 32767を超えている
Syntax error :文法エラー、書式と異なる利用を行った
利用例
ラベルを使ったループ処理
code:goto_sample3.bas
100 GOSUB "SUB01"
110 GOSUB "SUB02"
120 N=0
130 "LOOP"
140 PRINT "N=";N
150 N=N+1:IF N<5 GOTO "LOOP"
160 END
170 "SUB01"
180 PRINT "SUB01"
190 RETURN
200 "SUB02"
210 PRINT "SUB02"
220 RETURN
関連項目