if p1 [条件を満たしていればその行の命令を実行]
p1 : 条件式
上の例では、「a=10」の部分が条件式になります。条件式には主に、
a=b : aとbは等しい
a!b : aとbは等しくない
ab : aはbよりも大きい
a<=b : aはbよりも小さいか等しい
a>=b : aはbよりも大きいか等しい
を使います。if+条件式の後は:(コロン)で区切り、それに続いて条件が満た
された場合に実行される部分を書きます。
(C言語やJavaと同じように「=」「!」を「==」「!=」のように記述することも
可能です) もし、条件によってプログラムの流れを変えたい場合には、
例 :
a=10
if a>10 : goto *over10
mes "aは10以下です。"
stop
*over10
mes "aは10より大きいです。"
stop
上のように、goto命令で別なラベルに飛ばすことも可能です。
また、else命令を使って条件が満たされなかった場合の処理を同じ行に書くこ
とも可能です。
例 :
a=10
mes "aは、"
if a=10 : mes "10です。" : else : mes "10ではありません。"
stop
この場合は、else命令のある部分までは、条件を満たした場合に実行され、
else命令以降は、条件を満たされなかった場合に実行されます。
次の行以降は、条件に関わらず通常通りに実行されます。
より複雑な条件判断をするために、論理演算式を使うこともできます。
a&b : aとbがともに正しい (and)
a|b : aとbのどちらかが正しい (or)
これによって複数の条件を一度に記述することができます。
例 :
a=10:b=20
if (a=10)|(b=10) : mes "aかbのどちらかが10です。"
上の例では、「a=10」と「b=10」 という条件式を|(or)でつないで、どちらか
が正しい場合には、正しいという結果が出るようにしています。
論理演算は、 「|」「&」といった記号の他に「or」「and」という文字列でも
記述することができます。
例 :
if (a=10)or(b=10) : mes "aかbのどちらかが10です。"
上のように書いても、結果は同じになります。
if命令の条件が正しい時に実行されるスクリプトを複数行に渡って記述する場
合は、
例 :
a=10
if a>5 {
mes "TRUE"
mes "(MULTILINE IF)"
}
のように「{」で始めて「}」で終わる部分までを指定します。
(上の例では、 見やすくするためにC言語風に行の最初にTABを入れてあります
が、特に必要なものではありません。ユーザーの見やすいように記述してくだ
さい)
else命令でも複数行の指定ができます。
例 :
a=10
if a>5 {
mes "TRUE"
mes "(MULTILINE IF)"
}
else {
mes " FALSE"
mes " (MULTILINE IF)"
}
return
ただし、else の後に「{」を記述しなければ複数行にはならないので注意して
ください。
備考
ver3.0標準命令