トップ情報処理巨商伝雑記掲示板
情報処理 >> UWSC >> 入門編

条件分岐(IF)

あるケースの場合はこっち。
また別のケースではこっち。
といった具合で実行する処理を分けるのに必要なのが条件分岐です。

ではまず条件分岐の代表選手IFから説明します。
どういった命令かと言うと、もし○○ならば△△を実行するというものです。
例えば下記のようなスクリプトを実行すると…

IF (訪問者 = "セバスチャン") THEN MSGBOX("きりんさんが好きです")

訪問者がセバスチャンであれば、「きりんさんが好きです」というメッセージを表示し、
訪問者がセバスチャン以外であれば、何もしないという事になります。

今度は少し発展させ、ELSEという技を使います。
ELSEを記述すると、○○でなければ××を実行するという表現が可能となります。

IF (訪問者 = "セバスチャン") THEN MSGBOX("やふー") ELSE MSGBOX("もふー")

上記スクリプトを実行すると、
訪問者がセバスチャンであれば、「やふー」とメッセージを残し、
訪問者がセバスチャン以外であれば、「もふー」とメッセージを残します。
これがIFTHENELSE〜の構文です。

さて、前述の構文では、条件に一致した時、あるいは条件に一致しなかった時に、
一つの命令文しか実行できません。実際にスクリプトを組めば、
複数の命令を連続して実行したいというケースの方が多いでしょう。
そういった時に使われるのがIFBです。
基本構文はIFと変わりません。

IFB (訪問者 = "セバスチャン") TEHN
    MSGBOX("やふー");
    MSGBOX("あっちいけー");
ELSE
    MSGBOX("もふー");
    MSGBOX("いらっしゃい");
ENDIF

訪問者がセバスチャンであれば、「やふー」「あっちいけー」とメッセージを表示し、
セバスチャン以外であれば、「もふー」「いらっしゃい」とメッセージを表示します。
また、IFBは入れ子にする事が出来ます。

IFB (訪問者 = "セバスチャン") THEN
    IFB (帽子の色 = "青") THEN
        MSGBOX("帰れ!");
    ELSE
        MSGBOX("まあ、別に入ってもいいよ。");
    ENDIF
ELSE
    MSGBOX("ようこそおいで下さいました!");
ENDIF

上記の例ですと、訪問者がセバスチャンの場合のみ、帽子の色の判定が入っています。
さらに帽子の色によって、店主の対応が変化します。
複数のIFを駆使すると、こういった表現が可能となります。

UWSCトップへ戻る