もし〜〜なら...(if文) 生きてて選択しなくてはならないときってたくさんありますよね？ 私は今(作成当時)受験生なので模試やら考査やらで大変です。 マーク模試ならなおさらですが、テストって必ず「選択」があります。 パソコンは国語の「説明せよ」系の問題のように曖昧な選択は出来ません。 「大きい」や「小さい」程度の判断が精一杯です。 if文 if文。その名の通り条件によって処理を分ける文です。
if文
    1
    2
    3
    4
    a = 0;
    if(a == 0){
      Mes("aは0です。");
    }
ifのあとの()の中が条件です。なにやら「=」が二つ続いていますね。 この「==」は、「等しければ」の意味です。 つまり上の例では、「aが0ならば」という意味になりますね。 この「==」や、以下で紹介する不可解な記号は比較演算子と呼ばれます。
比較演算子
記号 | 使用例 | 意味
== | A == B | AとBが等しいとき
< | A < B | AがBより小さいとき
<= | A <= B | AがB以下のとき
> | A > B | AがBより大きいとき
>= | A >= B | AがB以上のとき
!= | A != B | AとBが等しくないとき
これくらいです。これは覚えないと厳しいです。他の言語でもほとんど同じです。 上で紹介したif文の例で、「==」を他の比較演算子に書き換えて実行してみてください。 また、比較するものは文字列でもかまいません。
文字列の比較
    1
    2
    3
    4
    a = "abc";
    if(a == "abc"){
      Mes("abcです。")
    }
違うときは では、次に条件に合わなかったときの処理方法を説明します。 条件に合わなかったときは、「else」を使います。 ifに続けてelseを書くことで、ifで当てはまらなかったときの処理が出来ます。
elseの例
    1
    2
    3
    4
    5
    6
    a = 0;
    if(a == 5){
      Mes("aは5です。");
    }else{
      Mes("aは5ではありません。");
    }
「aは5ではありません。」というダイアログが出たと思います。 上の例で、「a = 5」にすると、「aは5です。」とダイアログが出ます。 また、elseのあとにifを続けることで、複数分岐することも可能です。
else ifの例
    1
    2
    3
    4
    5
    6
    7
    8
    a = 0;
    if(a == 0){
      Mes("aは0です。");
    }else if(a == 1){
      Mes("aは1です。");
    }else{
      Mes("aは0と1以外です。");
    }
条件式 条件式とは、今までやってきた「a == 0」など、比較に関する式のことです。 条件式は、普通の式と違って、計算後はあっているか、あっていないか、の二通りしか返って来ません。 条件式が正しい(あっている)とき、その条件が真である、といいます。 また、条件式が正しくない(あっていない)とき、その条件が偽である、といいます。 Spinelの世界では、それぞれTrue、Falseという定数があります。 True = 1、False=0です。 また、Spinelは0を偽、0以外を真としています。
ifの例
    1
    2
    3
    4
    5
    6
    a = Confirm("あなたが犯人ですか？",False);
    if(a == 6){
      Mes("やっぱりそうですか。");
    }else{
      Mes("うそをつかないでください。");
    }
このConfirmという命令は第三引数がFalseの時、「はい」、「いいえ」のダイアログで、 「はい」が選択されたとき6を、「いいえ」のとき7を返します。 if文は条件式が真の時次の文を実行するので、「a == 6」と書けば、この式が6を返したとき真になります。 逆に、6以外が返ってくる(「いいえ」が押された)時は、「a == 7」は偽となり、そのあとは実行されません。 返された値が偽の時に何か実行したいときは、否定演算子「!」使用します。 否定演算子!は、与えられた条件の真偽を逆にします。 つまり、真の時は偽、偽の時は真を返す演算子です。 上の例を書き換えると、
!の例
    1
    2
    3
    4
    5
    6
    a = Confirm("あなたが犯人ですか？",False);
    if(!(a == 6)){
      Mes("うそをつかないでください。");
    }else{
      Mes("やっぱりそうですか。");
    }
このようになります。 この辺は重要ですが、使っているうちに慣れてきます。

index / 次へ
プログラム言語「Spinel」
Copyright © 2005 - gabyou All Rights Reserved.
NOTES Software.