前頁  メニュー  次頁


マイクロソフト系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
とは意味が異なる。