今月から Small Basic オフィシャルブログのライターになりました。今のところ毎週月曜配信してます。早いもので、すでに5本の記事を投稿しました。残念ながら英語です。日本のみなさんとも Small Basic でのプログラミングの楽しさを分かち合いたいので、このブログに日本語の記事を書いていきたいと思います。
今日はオフィシャルブログに先行して Small Basic の条件式について記事を書きます。
Small Basic には変数の型がないのですが、条件式の結果は内部的には論理型になります。”True” か “False” のどちらかの値を取ります。文字列でこれらの値を指定することが可能です。大文字と小文字の区別はないので、”true” や “FALSE” と書いても正常に動作します。文字列で指定する場合、実は “True” だけが判定され、”True” 以外は “False” の扱いになります。
While “True”
If clicked Then
Shoot()
Else
Program.Delay(200)
EndIf
EndWhile
他の言語では論理型の変数に条件式の結果を代入できる場合もありますが、Small Basic では代入はできません。条件式が書けるのは、If 文、For 文、While 文といった制御文の条件としてのみ書けます。
条件式には比較式と論理式が書けます。比較式は演算子 =, <, >, <=, >=, <> で2つの値を比較します。文字列同士の大小比較(= と <> 以外)はいったん数値に変換してから行われるようで、数値に変換できない文字列は 0 常にとして扱われます。
したがって Small Basic で文字列の大小を比較するには、そのためのサブルーチンを作成する必要があります。
論理式は比較式、論理式などを And または Or でつないだものです。以前の BASIC には NOT がありましたが、Small Basic には Not はありません。ちょっとトリッキーですが、以下のように記述することはできます。
Not = “True=False;False=True;”
While Not[keydown]
Program.Delay(200)
EndWhile
ただし、これも前述の理由で、Not[a > b] のような記述はできません。