さぁ脱初心者さんを志す方々の第一難関、分岐命令を使って行きたいと思います。
大事なところですので理解できるまで何度も読み返してください!
分岐とは「もしも〜だとしたら…」ってやつです。
その答えによっていくつかの道ができますね?それをHSPでします。
書式は「if 条件(式)」で、p1には条件式を入れるとあります。
まずは変数を条件式にするのがわかりやすいので変数を利用します。
(例) もし変数xの値が10未満ならプログラムを終了させる
例のようなスクリプトであれば、条件式は「if x < 10」となります。
そして条件式の後に「:」(コロン)を書いてその後に10未満の場合の処理を書きます。
条件式の条件を満たしていれば「:」以下の部分が実行され、満たしていない場合は無視されるわけです。
*sample ; ラベル
x = 12 ; ここの値をいろいろ変えてみてください
if x < 10 : end ; xが10未満だと「end」命令実行
stop
条件式に使う演算子には次のようなものがあります。
・より大きい「>」
・以上「>=」(≧のこと)
・同じ「==」(=でもOK)、
・同じでない「!=」(!でもOK)
・以下「<=」(≦のこと)
・未満「<」
・かつ「and」(&、&&、ANDどれも同じ)
・または「or」(|、||、ORどれも同じ)
・排他的論理和「^」
論理演算子はコチラで詳しく書いてますが、「AがX以上で、BがY以下で、CがZではない時」等の
1つの評価式の中に複数同時に判定させたい時に非常に有効なので覚えておいてください。
「if」と対になるもので「else」というものがあります。
使いどころとしては「もし〜なら…、そうでないなら…」と言うような時です。
条件を満たした処理の後に「:」をはさんで「else」、再び「:」を書いて満たさない時の処理を書きます。
(例) 変数xが10以上か変数yが5でないならプログラム終了、そうでないなら「違う」と表示
*test
x=8 ; 値を変えて試してください
y=5 ; ここも変えてみてね
if (x >= 10) or (y != 5) : end : else : mes "違う"
stop
条件式に当てはまった時に行う処理が2つ以上あると言う場合は、
if 条件式 : 処理1 : 処理2 : 処理3 : else : 満たさないときの処理
のように書くか、下記の様に「 { , } 」(中カッコ)を使って縦に書いてもOKです。
if 条件式 {
; 満たすときの処理
} else {
; 満たさないときの処理
}
下記のようにif文の中にさらにif文を書くこと(if文のネスティング)もできます。
if 条件式1 {
処理1
if 条件式2 {
処理2
if 条件式3 : 処理3
} else {
満たさないときの処理1 ; 満たさないときの処理2 : …
if 条件式4 {
処理4
}
}
}