コンピュータは、くり返し実行のほかに、「ある条件を満たすときだけこの命令を実行する」という判断をすることができます。例えば、数を1から順に表示して、3の倍数の時に「!!」をつける、というプログラムを作ってみましょう。(古いお笑いネタ?)
1 FOR I=1 TO 10
2 PRINT I;
3 IF I%3=0 THEN PRINT "!!";
4 PRINT " ";
5 NEXT
実行結果は、下のようになります。
>> RUN
1 2 3!! 4 5 6!! 7 8 9!! 10 >>
プログラムを説明しましょう。1行目の FOR
文は前回取り上げたのでいいですね。2行目の PRINT I;
は、変数 I
の値を表示するものですが、最後に ;
(セミコロン)がついています。このように、PRINT
文の最後をセミコロンで終えると、PRINT
文の最後に行を変えるのをやめさせることができます。つまり、I
の値を表示したのと同じ行の続きに、次の PRINT
文の内容が表示されるわけです。
3行目が今回のポイントになる「条件分岐」です。IF
文は、ある条件が満たされるかどうかを判断して、満たされる場合のみ THEN
以下の命令を実行します。日本語に直すと、IF
は「もし」、THEN
は「ならば」という意味です。IF xxxx THEN yyyy
は「もし xxxx ならば yyyy
」となります。
3行目をもう一度見てみます。I%3=0
というのが「条件」です。これは、「I
を3で割った余りが0である」、つまり「I
が3の倍数である」ことを意味しています[1]。この場合のみ、THEN
以下の命令、つまり PRINT "!!";
が実行されます。
[1] 条件式の中の「等しい」記号は、「変数に値を入れる」意味ではなく、「等しいかどうか」という本来の意味を表します。
IF
文の構文は、下の通りです。THEN
以下を IF
と同じ行に置く書き方と、THEN
で一度行を変える書き方があります。行を変えた場合は、最後に ENDIF
を書かないといけません。
IF
文)IF
文)条件式1
を判定し、満たされるなら 文1
を実行する。ELSEIF
以下があるなら、条件式2
を判定し、満たされるなら 文2
を実行する。 ELSEIF
〜文
の部分は、いくつでも書ける。ELSE
以下があるなら 文3
を実行する。
複数行 IF
文では、「文1
」「文2
」「文3
」もそれぞれ複数行で書くことができます。
「条件式
」の中では、次のような式を使うことができます。
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つまたは2つの条件式を使って、次のような新しい条件式を作ることもできます。
NOT 条件式1 条件式1を満たさない
条件式1 AND 条件式2 条件式1と条件式2がともに満たされる
条件式1 OR 条件式2 条件式1と条件式2のどちらかが満たされる
条件式1 XOR 条件式2 条件式1と条件式2のどちらか一方だけが満たされる
いろいろな条件式を組み合わせた判定については、次回にとりあげましょう。
[ ← トップページへ ]
[ ダウンロードページへ → ]