``

前頁 次頁

`マイクロソフト系` 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.  マルチステートメント
      マルチステートメントは２つの文を順に実行するのとは意味が異なる。
      たとえば，
      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
    とは意味が異なる。