2011年2月10日木曜日

ひつぶのHSP講座 10 「もしも○○だったら」 その1

この講座はHSP3x用です

今回は、もしも、○○だったら、こんな動作を行う、という命令を紹介します。
条件を満たしていればその行の命令を実行する、というのが「if」命令です。

if命令の横に書かれた条件が正しければ、「:」の右側に書かれた物を実行し、
正しくなかったら何もせずに次の行へいきます。


サンプルを見てください。
;---SAMPLE---------------------------------------------------------------
a = 10
b = -5
if  a = 10 : mes "変数aの中身は10です" ;もしaが10だったら文字を表示する
if  b = -4 : mes "変数bの中身は-4です" ;もしbが-4だったら文字を表示する
;-----------------------------------------------------------------------------

ifの横に書く条件の式は、=以外にもたくさんあります。
主なものは、

a=b  :aとbは等しい
a!b   :aとbは等しくない
a<b  :aはbよりも小さい
a>b  :aはbよりも大きい
a<=b:aはb以下 (小さいか等しい)
a>=b:aはb以上 (大きいか等しい)

です。

さて、これを使ったプログラムを作ってみましょう。
以前やった繰り返す、repeat-loop以外でも、if文を使って同じようなことができます。

;---SAMPLE---------------------------------------------------------------
a=1 ;繰り返す回数を数えさせる変数
*label
mes a
a=a+1 ;回数をカウントさせる変数に1を加える
if  a<=5 : goto *label ;繰り返した回数が5回以下なら*labelに飛ぶ
stop
;-------------------------------------------------------------------------
これを実行してみてください。
繰り返しごとに変数aに+1されて、5回以上になったらもう繰り返すのをやめます。


また、条件式に当てはまらない場合の処理を行わせることが出来るのが「else」命令です。
else命令の前の部分までは条件式が正しい場合に実行され、
else命令の後は正しくない(条件が満たされていない)場合に実行されます。

よく分からない方は下のサンプルを見てください。
;---SAMPLE---------------------------------------------------------------
a=3
if a=5 : mes "aは5です" : else : mes "aは5ではありません"
;-------------------------------------------------------------------------


複雑な条件判断をするために、複数の条件式を並べることも出来ます。
条件式をそれぞれ()で囲み、
条件式の間に、

両方の式が正しかったら○○を実行するようにしたかったら「and」を、
どちらかが正しかったら○○を実行するようにしたかったら「or」を書きます。

;---SAMPLE---------------------------------------------------------------
a=5 : b=5
if (a=5) or (b=3) : mes "aかbどちらかが5です"
;-------------------------------------------------------------------------
or」は、このようにaかbどちらかが条件を満たしていたら実行されますが、
両方とも正しくても実行されます。

and」も使い方は同じです。
;---SAMPLE---------------------------------------------------------------
a=5 : b=5
if (a=5) and (b=5) : mes "aかbどちらも5です"
;-------------------------------------------------------------------------


次は、if文の違う書き方です。
条件式が正しい、または正しくない場合に処理されることを複数行にわたって書きたい(いくつも実行させたいことがある)場合、
;---SAMPLE---------------------------------------------------------------
a=5
if a<10 { ;ここの改行は自由です
mes "条件をみたしています"
mes "aは10未満です"
}
;-------------------------------------------------------------------------
という風に、「」と「」でくくることで複数行に渡って処理を書くことが出来ます。

else命令でも同じように複数行に渡り書くことも可能です。
;---SAMPLE---------------------------------------------------------------
a=5
if a<10 { ;ここの改行は自由です
mes "条件をみたしています"
mes "aは10未満です"
} ;ここの改行は自由です
else{ ;ここの改行は自由です
mes "条件をみたしていません"
mes "aは10以上です"
}
;-------------------------------------------------------------------------

さて、急ぎ足になってしまいましたが、分かったでしょうか。
分からなかったらコメントにでも質問してください。

では。

0 コメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Walgreens Printable Coupons