第9章 もしも・・・なら


もしも・・・なら〜するという命令を紹介します。
これを見てください。
	a=1	;aに数値を代入

	if a=1:mes "aの中身は1です。"	;もしもaが1なら文字を表示
	if a=2:mes "aの中身は2です。"	;もしもaが2なら文字を表示
	if a=3:mes "aの中身は3です。"	;もしもaが3なら文字を表示

	stop

a=1をa=2やa=3に変えて実行してみてください。

このように、指定された条件が正しければ実行するというのがif命令です。
ifの右に書かれた式が正しければ、「:」の右に書かれた命令が実行され、
正しくなければその行では何もせず、次の行に進みます。


他にもいろいろな形の条件を書くことができます。次のプログラムを試してください。
	a=5:b=10:c=20	;変数a,b,cに数値を代入

	if a=5:mes "aは5です。"
	if a>5:mes "aは5よりも大きいです。"
	if a<5:mes "aは5よりも小さいです。"

	if b>=10:mes "bは10以上です。"
	if b<=10:mes "bは10以下です。"

	if c!=15:mes "cは15ではありません。"
	if c=15:mes "cは15です。"

	stop

a,b,cをいろいろ変えて実行してみてください。

if a=?		aが?と同じなら
if a!?		aが?と異なるなら
if a>?		aが?より大きいなら
if a<?		aが?より小さいなら
if a>=?	aが?と同じ、または?より大きいなら
if a<=?	aが?と同じ、または?より小さいなら
という風になっています。(ここでは全角で書いていますが、実際には半角で書いてください)


さて、これを利用したプログラムを作ってみましょう。
goto命令の繰り返しでは、繰り返し回数を指定できない、と以前は言いましたが、
if命令を使えば、ちゃんと繰り返し回数を定めれるんです。
	count=1			;繰り返し回数
*a
	mes count
	count++			;繰り返し回数を+1
	if count<=10:goto *a	;countが10以下なら*aに飛ぶ
stop

これを実行してみてください。
繰り返しごとにcountを+1していって、countが10を超えたら*aにはもう飛ばなくなります。
この様に、if命令はとても便利な命令です。


この命令をもっと上手く使うためにも、次のプログラムも実行してみてください。
	a=10:b=10:c=20		;a,b,cに数値を代入
	if (a=10) & (b=10){
		color 255,0,0
		mes "aもbも10です。"
	}
	else{
		color 0,0,255
		mes "aとbのどちらか、又は両方が10ではありません。"
	}
	if (a=20) | (c=20){
		color 0,255,0
		mes "aとcのどちらか、又は両方が20です。"
	}
	stop

最初のifを見てください。
()に挟まれた条件が二つあるのがわかると思います。
条件が二つ以上ある場合はこのように、()の間に条件を書いていきます。
そして、その2つの条件の間には「 & 」か「 | 」を書きます。
「 & 」は日本語で言う「さらに」とか「かつ」だと思えばいいです。つまり両方が正しいとき、ということです。
「 | 」は日本語で言う「または」です。つまり、どちらかが正しいとき、ということです。

また、「もしも・・・なら〜する」の〜の部分、つまり実行する命令が2つ以上ある場合は、
条件の後に「:」ではなく「 { 」を書きます。
そして、その実行する複数の命令の最後に「 } 」が必要です。

そして、その次にあるelseですが、これは直前の条件が当てはまらなかったときに実行されます。
この場合、aとbのどちらか、又は両方が10ではないときに実行されます。
elseを使う場合、elseと直前のifとの両方で、「 { } 」を使う必要がありますので注意してください。



ちょっと今回は急いで教えたので、分からない人も多かったかと思います。
そんな人はすぐに質問してくださいね。

だいたい理解できたぞ!って人は第10章 にどうぞ。

戻る