“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

8.BASICをマスターする!その3

ここからがプログラムの本番となるIF~THEN文。
英語の意味のとおり、もし〇〇ならば、××する、いわゆる条件分岐。
何かを判定して、その後の動きを変えるので、プログラムには必須。

例えば、入力した値を判定するなら

10 INPUT "NUMBER=",X
20 IF X ≧ 5 THEN 40
30 PRINT "X < 5":GOTO 50
40 PRINT "X ≧ 5"
50 END

こんな感じ。
20行目のIF文で、入力されたXの値が、5以上かどうかを判定している。*1

THENの後には行番号か、プログラム番号が入る。
この行にジャンプして処理が進んでいく。

同じように、GOTO文も、その行にジャンプする。
BASIC最大の批判ポイントが、このGOTO文なのだ。
どこにでも強制的にジャンプできるので、多用すると「スパゲッティプログラム」と呼ばれる、とても読みにくいプログラムになる。そしてプログラムの間違いを見つけるために、追いかけるのが嫌になるのだw

10 GOTO 30
20 PRINT "A";
30 PRINT "B";
40 GOTO 60
50 PRINT "C";
60 PRINT "D";
70 END

このプログラムの結果は、こうなる。

BD

ジャンプするので、実行されない命令があったり、意図しないところにジャンプしてプログラムが正しく動作しなくなったりする。
でも、このポケコンのBASICでは、必要なので、プログラムの設計が重要になる。
無計画にプログラムを後付けで作ると、ごちゃごちゃになったなぁ。

ほかにも、繰り返し処理を行うFOR~NEXT文や、同じ処理をまとめたサブルーチンを使うためのGOSUB~RETURN文などがあるが、本格的なBASIC講座ではないので、ここにて終了w

*1:PB-300のBASICでは、大なりイコール(≧)や、小なりイコール(≦)が記号1文字で表せていた。別の言語だと、==、>=、<=と二文字の半角文字で書かないといけないものが多い。