文系でもわかるBASIC入門
9.条件成立で流れを変える
前回はプログラムの流れを強制的に変えるGOTO命令について説明しましたが、ある条件が成立した時に流れを変える方法を説明します。
説明に使用しているプログラムを圧縮ファイルで用意しました。
おすすめは手打ちで入力する方法です。その方が早く身に付くと思います。
IF 命令を使おう
IF命令は「もし ~ ならば ~ を行う」というように条件が成立した時のみ
実行させることができます。プログラムには欠かせないものです。
次の例を見てください。
入力した2つの値を足すプログラムです。
このプログラムはまだ完成していません。
実行させると次のようになります。
3、4、9、5 と入力した後は、数値を入力せず Enter キーのみ押しました。
その結果、a+b= 0と表示されてます。
INPUT命令で空打ちをすると、数値変数なら0が入る仕組みになっているので、このような結果になります。
いまはまだ実行中のプログラムを止めることができません。
今回は ESCキーを押して強制的に中断させます。
プログラムの中から実行を中止する仕組みを入れます。
行番号25を追加しましょう。
IF命令は
IF 条件 THEN 命令
という書き方をします。
行番号25では
もし変数aが0ならばEND命令を実行
という動きをします。
これで変数aの入力待ちの時、Enterキーのみ押せばプログラムは終了します。
なお、25行目の a = 0 は、変数aに0を代入するという意味ではなく
変数a は0かどうかを判断するための書き方です。注意しましょう。
変数aの入力で Enterキーのみ押してみます。
a=? の後にOKが表示されました。これでプログラムの終了が分かります。
さらに変数bの入力でもプログラムを終了できるようにします。
行番号35 と 60 を追加します。
IF命令は
IF 条件 THEN 行番号
という書き方もできます。
行番号35では
もし変数bが0ならば行番号60へジャンプ
という動きになります。
変数bの入力で Enterキーのみ押してみます。
行番号60 へジャンプするので「終了します」を表示してからプログラムを終了します。
実践的な IF 命令の使い方とは
少し複雑なプログラムで IF命令の使い方を説明します。
次のプログラムを入力して、実際に動かしながら確認してください。
ここで新しいプログラムの書き方がでてきました。
行番号30 から 60 までの文にコロン(:)が使われてます。
コロンを使うことで1行の中に複数の命令をつなげて書くことができます。
行番号30 では変数NOが1だった時、変数ZANKINに80を代入して
その後に行番号80 へジャンプします。
行番号80 のREMは、その後に書かれたものを全てコメントとして扱います。
つまりどんな命令を書いても無視されます。
プログラムを見やすくしたり、処理の説明を書くときに使いましょう。
実行してみます。
はじめに5を入力しました。
変数NO には5が入るため、行番号30 から 50 までは無視されます。
そのまま行番号60へ行き「次の中からお選び下さい」を表示して
行番号10へジャンプします。
2度目の選択で2を入力しました。
行番号40 の条件に当てはまるため、変数ZANKIN に100を代入して行番号80へジャンプします。
「次の中からお選び下さい」の表示の一行前には何も表示されていません。
行番号60 を見てみると、PRINT命令のみ書かれている部分があります。
60 PRINT:PRINT “次の中からお選び下さい”
このPRINT命令により空白の行が表示されたのです。
行番号100 以降のプログラムを入力しましょう。
IF命令の中で小なり<と、大なり>の記号を使っています。
キーボードの次のところにあります。シフトキーを押しながら入力します。
行番号 120 と 220 で使った小なり<大なり>は関係演算子といって、比較のときに使います。
120 IF ZANKIN - IN <= 0 THEN 200
変数ZANKIN から 変数IN を引いた値が0以下だったら、行番号200へジャンプします。
ちなみに0以下とは、0も含みます。
220 IF IN - ZANKIN > 0 THEN PRINT “おつり”;(IN - ZANKIN);“円です"
変数IN から 変数ZANKIN を引いた値が0より大きければ、おつりを表示します。
実行してみます。
3番のジュースを選ぶと130円入れて下さいと表示されます。
500 を入力するとおつり 370 円ですとなります。
1番の水を選び 40 を入力するとお金が足りません。もう一度入れて下さいと表示されます。
120 を入れればおつり 40 円ですとなって正常に動いています。
ちょっと雑な仕組みですが、飲み物を購入するときの手順をプログラムしたことになります。
IF命令と関係演算子の使い方をマスターするためにプログラムを変更して遊んでみてください。
関係演算子について
関係演算子(比較演算子とも言う)について説明します。
IF命令で値を比較したいときなどに使います。
条件式 | 例 | 備 考 |
---|---|---|
= | A = B | A と B が等しいとき |
<> | A <> B | A と B が等しくないとき |
> | A > B | A が B よりも大きいとき |
>= | A >= B | A が B 以上のとき |
< | A < B | A が B よりも小さいとき |
<= | A <= B | A が B 以下のとき |
結果は、真(-1)または、偽(0)で得られます。
先ほどのプログラムを見てください。
変数NOに3を入力したとき、行番号50のNO=3が真となるため、変数ZANKINには130が代入されます。
行番号30のNO=1と行番号40のNO=2は偽となり、THENのあとの処理は行われません。