[Top Page][Edit][Discussion][Edit History][All Pages][Recent Changes][->Japanese]

HSPHelp:if


if

if p1                   [条件を満たしていればその行の命令を実行]

    p1 : 条件式

説明

p1の条件式が満たされていれば、それ以降の命令を実行する。 満たされていない場合は、次の行に移ります。 BASICと違い、 その行の次の命令との間には:(コロン)を入れなければいけないので注意してください。

例:

    a=10
    if a=10 : mes "aは10です。"

上の例では、「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

上のように、HSPHelp:goto命令で別なラベルに飛ばすことも可能です。 また、HSPHelp:else?命令を使って条件が満たされなかった場合の処理を同じ行に書くことも可能です。

例:

    a=10
    mes "aは、"
    if a=10 : mes "10です。" : else : mes "10ではありません。"
    stop

この場合は、HSPHelp:else?命令のある部分までは、条件を満たした場合に実行され、 HSPHelp: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です。"

上のように書いても、結果は同じになります。

HSPHelp:if命令の条件が正しい時に実行されるスクリプトを複数行に渡って記述する場合は、

例:

        a=10
        if a>5 {
                mes "TRUE"
                mes "(MULTILINE IF)"
        }

のように「{」で始めて「}」で終わる部分までを指定します。 (上の例では、見やすくするためにC言語風に行の最初にTABを入れてありますが、 特に必要なものではありません。ユーザーの見やすいように記述してください)

HSPHelp:else?命令でも複数行の指定ができます。

例:

        a=10
        if a>5 {
                mes "TRUE"
                mes "(MULTILINE IF)"
        }
        else {
                mes "  FALSE"
                mes "  (MULTILINE IF)"
        }
        return

ただし、elseの後に「{」を記述しなければ複数行にはならないので注意してください。

備考

ver2.6標準命令