


 
 
 
 
 
 
 |
ON〜GOTO
ON〜GOSUB | BASIC(13) |
|
条件判断をしてGOTO文で分岐をさせたいという場合、
10 IF A=1 THEN 1000
20 IF A=2 THEN 2000
30 IF A=3 THEN 3000
40 IF A=4 THEN 4000 |
のように書ける場合、もっとシンプルに、ON〜GOTO文を使って書き直す事が出来ます。
10 ON A GOTO 1000,2000,3000,4000 |
但し、変数Aの値が、1,2,3,4と正の整数値で変化する時のみ使えます。Aの値がマイナス値の時はエラーを発生します。ゼロや5以上の時は、実行は次の行に移ります。
同様に、
10 IF A=1 THEN GOSUB 1000
20 IF A=2 THEN GOSUB 2000
30 IF A=3 THEN GOSUB 3000
40 IF A=4 THEN GOSUB 4000 |
のように書ける場合、もっとシンプルに、ON〜GOSUB文を使って書き直す事が出来ます。
10 ON A GOSUB 1000,2000,3000,4000 |
形として似たようなものに、以下のような文がありますが、これらは割り込み命令です。
ON ERROR GOTO | エラーが発生した場合,処理ルーチンへ |
ON COM GOSUB
ON HELP GOSUB
ON KEY GOSUB
ON MOUSE GOSUB
ON STOP GOSUB
ON TIME$ GOSUB |
RS-232C回線からの割込みが発生した場合
HELPキーを押した場合
ファンクションキーを押した場合
マウスによる割込みが発生した場合
STOPキーを押した場合
タイマー割込みが発生した場合 |
ON ERROR GOTOは、プログラム実行中にエラーが発生した場合、予め作っておいたエラー処理ルーチンへジャンプし、エラー処理をした後、RESUME命令で元の場所の次の文、や、指定する行番号へ戻す事が出来ます。
プログラミングの勉強段階・テスト段階では余り必要ありませんが、実用的なプログラミングをする際には必要になって来ます。
その他の割り込み命令は、
割込み許可 | 割込み禁止 | 割込み停止 |
COM ON | COM OFF | COM STOP |
HELP ON | HELP OFF | HELP STOP |
KEY ON | KEY OFF | KEY STOP |
MOUSE ON | MOUSE OFF | MOUSE STOP |
STOP ON | STOP OFF | STOP STOP |
TIME$ ON | TIME$ OFF | TIME$ STOP |
を使ってうまく制御させるプログラムを作成しないと、思ったように動きませんので注意が必要です。割込みは高度なプログラミングテクニックですので、使いこなすには色々と試してみないと分かりづらいですが、使いこなせるようになると面白い事も出来るようになります。ここで詳しくは書きませんが、興味があれば詳しい書籍等を参考にして色々試してみてください。 |
|
バッチファイル
BASIC
1 2 3 4 5
6 7 8 9 A
B C D E F
G H I J
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
|