BASIC - 文字列関係

BASICで文字列を扱う時のテクニックです。

MID$

EASY,NORMAL,HARDといった難易度を表す文字列を難易度にあわせて表示したい。そういう時、

10 IF A=0 THEN PRINT "EASY"
20 IF A=1 THEN PRINT "NORMAL"
30 IF A=2 THEN PRINT "HARD"

なんていちいちこんな長々と書く必要はありません。
MID$という命令を使えばものすごく簡単になります。

PRINT MID$("ABCDE",3,2)

この場合、「"ABCDE"という文字列の3文字目から2文字取り出す」という意味になります。
これをうまく利用すると、

PRINT MID$("EASY  NORMALHARD",A*6+1,6)

こんな風に簡単になります。
A=0のときは"EASY  "と、A=1のときは"NORMAL"と、A=2のときは"HARD"と表示されます。
このとき注意してほしいのは、同じ文字数じゃないといけないということ。そのため、EASYの後に2つスペースを入れて6文字にしています("HARD"の後のスペースは仕様上要りません)。つまり、スペースが表示されてしまうわけです。支障がなければこれでいいのですが、スペースが表示されると困るという場合はこうしましょう。

PRINT MID$ ("EASYNORMALHARD",(A=2)*-2+A*4+1,(A=0)*2+6)

このように条件演算を使えば何とかなりますが、複雑でかつ実行速度が落ちてしまいます。

Copyright(C) tosik
E-Mail:
Weblog: Tosikの雑記