AIRNovel テクニック wiki (非公式) menu_button

条件の書き方

作成日:2017.05.03、最終更新日:

cond=[if]exp=での条件の指定方法です。

変数のみ

[ch text=test cond="var"]の様に変数そのままを条件とした場合、次の場合は条件を満たしません。

  • 以前に変数が指定されていない(null)
  • false(文字列でfalseを含む)
  • 0
  • 空文字

それ以外の場合は条件を満たします。つまり、

  • true
  • 0以外の数字(負の数でも)
  • false以外の文字列

の場合です。

ただし、[ch text=test cond="var@str"]とすることにより、空文字の場合以外は条件を満たす側になります。

条件を反転させたい時は「!」を使用します。[ch text=test cond="! var"]

比較

共通

  • A == B : AとBが等しい
  • A != B : AとBが異なる

数字でも文字列でも同じように指定します。

ただし、true・falseで指定する場合、

&var = 0
[ch text=test cond="var == false"]

では、条件を満たし実行されます。
「変数のみ」の項目と同じく、0や空文字はfalseとして判断されるためです。
このような場合には「===」か「!==」を使用します。

数字のみ

  • A > B : AはBより大きい
  • A >= B : AはB以上
  • A < B : AはB未満
  • A <= B : AはB以下

数字のみなのは、文字列は大きさ比較できませんから。

条件中に計算も使用できます

例えば、varが5で割り切れる場合のみ実行するのでしたら、[ch text=test cond="var % 5 == 0"]というように記述することが可能です。

複数の条件を一度に判断

AかつB

&&で条件をつなぐと全ての条件を満たした場合になります。
[ch text=test cond="var % 5 == 0 && var >= 15"]とすれば、varが5で割り切れて15以上の場合となります。
10の場合は後者を満たさないので実行されず、16は前者を満たさないので実行されません。

AもしくはB

||で条件をつなぐと、いずれかの条件を満たした場合になります。
[ch text=test cond="var % 5 == 0 || var < 15"]とすれば、varが5で割り切れるか、15未満の場合となります。
15の場合は前者を満たすので実行され、13は後者を満たすので実行されます。

trueとfalseの計算

truefalseは計算をする場合にtrueは1、falseは0として計算されます。
ですので、truefalseもしくは1と0で管理している場合はいずれかを満たす、全てを見たすを計算で表現することが可能です。
[ch text=test cond="var1 + var2"]はどちらか(もしくは両方)がtrueの場合は計算結果が1となり、「変数のみ」の場合の判断と同じく実行されます。
[ch text=test cond="var1 * var2"]は両方がtrueの場合のみ計算結果が1となり、「変数のみ」の場合の判断と同じく実行されます。

複数のフラグを判断するような場合は、&&や||を利用するより書きやすいかと。


 
up_button