制御文
●行末注釈は ' ではなく, ! で始まる。
●マルチステートメントは存在しない。
IF文に続くマルチステートメントは,IF〜END IF構文を利用して書き直す。
●IF文でTHENやELSEに続けてIF文を書くことは禁止されている。
このような場合には,IF文でなく,IF〜END IF構文を利用する。
●NEXT文で変数名を省略して書くことは許されない。
○END文の意味が異なる。END文の意味は,主プログラムの最終行を示すことである。(詳細)
○STOP文の意味は異常終了ではない。マイクロソフトのEND文に相当する。
○p AND qでpが偽のときqを評価しない。
○p OR qでpが真のときqを評価しない。
○比較演算の結果は数値ではない。
○AND, OR, NOTの演算は数値演算ではない。
●WHILE〜WEND構文はない。
DO WHILE 〜 LOOPが対応する。
○if文などで条件に書くのは数値式ではなく,論理式。
WHILE 1
……
WEND
は,
DO
……
LOOP
に対応する。
○SELECT構文でCASE ELSE以降を省略したとき,実行時に一致するcase項目がない場合,マイクロソフトBASICでは何も実行せず先に進むが,JIS Full BASICでは例外状態になる。したがって,一致するcase項目がない場合には何も実行しなくてよいという場合でも,CASE ELSEを省略することはできない。
○CHAIN文を実行すると,引数以外の変数は無効になる。
○RANDOMIZE文にseedを書くことはできない。
--------------------------------
参考 注意すべきマイクロソフト文法
--------------------------------
1. マイクロソフトBASICの文法では,条件は数値である。
たとえば,
IF A THEN …
は,Aの値が0でないときに…を実行する。
2. マイクロソフトの文法では,比較演算の結果は数値である。
A<B や A=2 のような比較演算の結果は数値で,真のとき-1,偽のとき0になる。だから,
IF 1<A<3 THEN B=0
を実行すると,Bの値は必ず0になる。
3. マルチステートメント
マルチステートメントは2つの文を順に実行するのとは意味が異なる。
たとえば,
10 IF A=1 THEN GOTO 100 : IF A=2 THEN GOTO 200
と,
10 IF A=1 THEN GOTO 100
20 IF A=2 THEN GOTO 200
とは意味が異なる。