HSP講座

コンテンツ

作成中...

Google Ads

トップページ > HSP講座 トップ > 第10章 条件分岐

第10章 条件分岐

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

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

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

1|
2|
3|
4|
5|
6|
7|
8|
9|
10|
11|
12|
13|
14|
15|
16|
17|
18|
19|
20|
21|
22|
23|
; if文を使った条件分岐

; "a"という変数に数字を代入する
a = 0


if ( a = 0 ) { ; ここでif命令を使っている

    ; 変数"a"の内容が"0"ならここを実行する
    mes "a = 0 です。"

} else { ; ここでelse命令を使っている

    ; 変数"a"の内容が"0"でないならここを実行する
    mes "a = 0 ではありません。"

}


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

[EOF]

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

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

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

1|
2|
3|
4|
5|
6|
7|
8|
9|
10|
11|
12|
13|
14|
15|
16|
17|
18|
19|
20|
21|
22|
23|
; if文を使った条件分岐

; "a"という変数に数字を代入する
a = 1


if ( a = 0 ) { ; ここでif命令を使っている

    ; 変数"a"の内容が"0"ならここを実行する
    mes "a = 0 です。"

} else { ; ここでelse命令を使っている

    ; 変数"a"の内容が"0"でないならここを実行する
    mes "a = 0 ではありません。"

}


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

[EOF]

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

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

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

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

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

では、「if命令」で使用することのできる条件を紹介します。
(「HSP Help Browser II」の「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よりも大きいか等しい

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

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

1|
2|
3|
4|
5|
6|
7|
8|
9|
10|
11|
12|
13|
14|
15|
16|
17|
18|
19|
20|
21|
22|
23|
24|
25|
26|
27|
28|
29|
30|
31|
32|
33|
34|
; 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

[EOF]

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

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

1|
2|
3|
4|
5|
6|
7|
8|
9|
10|
11|
12|
13|
14|
15|
16|
17|
18|
19|
20|
21|
22|
23|
24|
25|
26|
27|
28|
; 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

[EOF]

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


[ ← 前へ ] [ 戻る ] [ 次へ → ]

Copyright (C)2006-2007 はむ / AHD  All Rights Reserved.