マイクロソフト系BASICとの相違

制御文

●行末注釈は ' ではなく, ! で始まる。
●マルチステートメントは存在しない。
 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
 とは意味が異なる。

inserted by FC2 system