もし〜〜なら...(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の世界では、それぞれTrueFalseという定数があります。
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 - Giemsa All Rights Reserved.
NOTES Software.