ホーム > HSP講座 > HSPの基本編 > 第10章 条件分岐

第10章 条件分岐

登録タグ: HSP3 Hot Soup Processor Hot Soup Processor3 ホットスーププロセッサー 条件分岐 条件判断 if else


今回からは、実際にスクリプトを記述していく上で重要なことを説明していきます。
まずはじめは条件分岐です。条件判断とも言います。

条件分岐というのはその名の通り、条件の違いによってプログラムの処理を変えるというものです。
条件分岐にはif命令というものを使います。

まずは簡単なサンプルスクリプトをご覧ください。

; if文を使った条件分岐
; "a"という変数に数値を代入する
a = 0

if ( a = 0 ) { ; ここでif命令を使っている
    ; 変数"a"の内容が"0"ならここを実行する
    mes "a は 0 です。"
} else { ; ここでelse命令を使っている
    ; 変数"a"の内容が"0"でないならここを実行する
    mes "a は 0 ではありません。"
}

; stop命令を使用してプログラムを終了する
stop

コメントを書きすぎたので少し分かりにくいかもしれません、ごめんなさい。
ちなみに実行すると、画面にa は 0 です。と表示されます。

これは、変数”a”に代入された数値が0か、そうでないか、によって表示する内容を変更するスクリプトです。
試しに一番最初に代入する変数の内容(数値)を変更してみると、その数値によって表示される文章が変わります。

今回は0の代わりに1を代入してみます。
画面にa は 0 ではありません。と表示されるはずです。

; if文を使った条件分岐
; "a"という変数に数値を代入する
a = 1

if ( a = 0 ) { ; ここでif命令を使っている
    ; 変数"a"の内容が"0"ならここを実行する
    mes "a は 0 です。"
} else { ; ここでelse命令を使っている
    ; 変数"a"の内容が"0"でないならここを実行する
    mes "a は 0 ではありません。"
}

; stop命令を使用してプログラムを終了する
stop

それでは、if命令について、少し詳しく説明していきます。

if命令を使うときには、if命令に続けて必ず書かなければいけないことがあります。

そう、条件です。
条件はかっこの中に記述します。

if命令は、あとに続けて記述された条件の内容によって、どのスクリプトを実行するかを判断していきます。
今回の場合、条件はa= 0です。
変数aの内容が0と等しいなら、条件に続くかぎかっこの内容を実行していきます。
そのため、変数aの内容が0の時は、画面にa = 0 です。と表示されました。

今回はもうひとつ、if命令のかぎかっこに続く命令があります。これをelse命令といいます。
else命令は、直前のif命令の条件に合わないときにelse命令の直後のかぎかっこの内容を実行します。
そのため、変数aの内容が0と等しくない時は、画面にa = 0 ではありません。と表示されました。

では、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よりも大きいか等しい

表1 条件式の種類とその意味

ちなみに、a = ba == ba ! ba != bのように、C言語のように記述することもできます。

if命令を使っていく場合は、上に紹介した条件を覚えておけばある程度は大丈夫だと思います。
”ある程度”というのは、if命令で使用することができる条件の種類がこれだけではないからです。
他にも何種類かがありますが、ここで書くには難しすぎると思うので割愛しました。(今後、書く機会があれば書きます。)

今後if命令を使っていく中で、必ずしも条件が1つだけとは限りません。
複数の条件に分けて処理をしなければいけないことがあると思います。
そんな時のためのサンプルを1つ紹介しておきます。

; if文を使った条件分岐 (応用編)
; "a"という変数に数字を代入する
a = 0

if ( a = 0 ) {
    ; 変数"a"の内容が"0"ならここを実行する
    mes "a は 0 です。"
} else : if ( a = 1 ) {
    ; 変数"a"の内容が"1"ならここを実行する
    mes "a は 1 です。"
} else : if ( a = 2 ) {
    ; 変数"a"の内容が"2"ならここを実行する
    mes "a は 2 です。"
} else {
    ; 変数"a"の内容が"0","1","2"の
    ; どれでもないならここを実行する
    mes "a は 0 でも 1 でも 2 でもありません。"
}

; stop命令を使用してプログラムを終了する
stop

複数の条件で判断したい場合は、このようにelse命令の直後にif命令を続けて書きます。
else命令if命令の間のセミコロンも忘れないでください。

最後に、if命令だけを使用するときの書き方を紹介します。
3種類あるので、好きな書き方で記述してください。

; if文だけを使った条件分岐
; "a"という変数に数字を代入する
a = 0

; 記述方法 その1 (かぎかっこを使い複数行で書く)
if ( a = 0 ) {
    mes "a は 0 です。"
}

; 記述方法 その2 (かぎかっこを使い1行で書く)
if ( a = 0 ) { mes "a は 0 です。" }

; 記述方法 その3 (セミコロンを使い1行で書く)
if ( a = 0 ) : mes "a は 0 です。"

stop

今回は以上です。次回は繰り返しをやろうと思います。

← 前へ | 次へ →


カテゴリー:HSPの基本編
2011/09/12 14:33:09 更新

Powered by AkiWiki. Wiki syntax is based on PukiWiki, and extends it.

スポンサード リンク

メニュー

HTML講座

HSP講座

Inkscape講座

スポンサード リンク