if式
Verse言語でのif式は、式が「成功」か「失敗」かで条件分岐します。
if式の条件式部分は、失敗コンテキストに相当します。
具体的な例を示します。
次の例では、3 > 5
が実行され、その結果「失敗」と判断されます。
したがってこの状態で実行しても "OK"
は表示されません。
if (3 > 5):
Print("OK")
一方で次の例では 3 <= 5
が「成功」と判断され、"OK"
が表示されます。
if (3 <= 5):
Print("OK")
比較演算子の効果を理解するため、if式を用いた例を示します。
var Var1 : int = 5
if (Var1 < 3):
Print("Var1 < 3") # 実行されない
if (Var1 <= 3):
Print("Var1 <= 3") # 実行されない
if (Var1 > 5):
Print("Var1 > 5") # 実行されない
if (Var1 >= 5):
Print("Var1 >= 5") # 実行される
if (Var1 <> 5):
Print("Var1 <> 5") # 実行されない
if (Var1 = 5):
Print("Var1 = 5") # 実行される
このプログラムをクラス output_logs
デバイスのメンバ関数 OnBegin
に追加して実行したときのログ画面を示します。
「成功」となる条件式の場合のみ実行されることがわかります。
クラス output_logs
の作り方については、次の記事を参考にしてください。
条件演算子についても、ここで具体的に効果を理解しましょう。
var Var1 : int = 5
if (not (Var1 < 3)):
Print("not (Var1 < 3)") # 実行される
if (Var1 > 2 and Var1 > 4):
Print("Var1 > 2 and Var1 > 4") # 実行される
if (Var1 > 2 and Var1 < 4):
Print("Var1 > 2 and Var1 < 4") # 実行されない
if (Var1 < 2 or Var1 = 5):
Print("Var1 < 2 or Var1 = 5") # 実行される
if (Var1 < 2 or Var1 < 4):
Print("Var1 < 2 or Var1 < 4") # 実行されない
このプログラムをクラス output_logs
デバイスのメンバ関数 OnBegin
に追加して実行したときのログ画面を示します。
クエリ演算子については、次のようになります。
if (Var1)
ではコンパイルエラーとなることに注意しましょう。
var Var1 : logic = true
var Var2 : logic = false
if (Var1?):
Print("Var1?") # 実行される
if (Var2?):
Print("Var2?") # 実行されない
このプログラムをクラス output_logs
デバイスのメンバ関数 OnBegin
に追加して実行したときのログ画面を示します。
if-else if-else式
if式は、指定した条件が「成功」の場合に記述した処理を実行するものでした。
しかし、条件が「失敗」した場合のみに処理を実行したい場合もあるでしょう。
このとき役立つのがelse式です。
else式はif式の条件式が「失敗」したときに実行されます。
else式を使ったプログラムの例を示します。
var Var1 : int = 5
if (Var1 < 3):
Print("if (Var1 < 3)") # 実行されない
else:
Print("else") # 実行される
このプログラムをクラス output_logs
デバイスのメンバ関数 OnBegin
に追加して実行したときのログ画面を示します。
else if式を用いることで、さらに複雑な条件分岐を実現できます。
else if式は、直前の条件式の結果が「失敗」したときに実行されます。
実行された段階でそのif式の処理が終わるため、以降の処理が実行されません。
else if式を使ったプログラムの例を示します。
var Var1 : int = 5
var Var2 : logic = true
if (Var1 > 10):
Print("if (Var1 > 10)") # 実行されない
else if (Var2?):
Print("else if (Var2?)") # 実行される
else:
Print("else") # 実行されない
if (Var1 > 3):
Print("if (Var1 > 3)") # 実行される
else if (Var2?):
Print("else if (Var2?)") # 実行されない
else:
Print("else") # 実行されない
if (Var1 > 10):
Print("if (Var1 > 10)") # 実行されない
else if (not Var2?):
Print("else if (not Var2?)") # 実行されない
else:
Print("else") # 実行される
以上が、if式の利用方法です。
その他、UEFNのVerseに関する情報は、以下の記事にまとめています。