演算子には、4種類の演算子があります。
説明の中で「失敗」という用語が出てきますが、これは値がないことを示します。
反対に値がある場合は「成功」と呼びます。
「失敗」については、他の記事で詳しく説明します。
- 比較演算子
- 2つの変数や値を比較し
true
を生成するか、「失敗」になります。
- 2つの変数や値を比較し
- 条件演算子
- 「失敗」かそれ以外かで「成功」と「失敗」になります。
- 算術演算子
- 変数や値に対して、算術演算や文字列連結できます。
- クエリ演算子
- 型が
logic
の変数がtrue
か否か確認し、false
の場合は「失敗」になります。
- 型が
比較演算子
2つの変数や値を比較し true
を生成する(「成功」になる)か、「失敗」になる演算子です。
「失敗」になる可能性があるため、失敗コンテキスト内でのみ使用できます。
失敗コンテキストについては本記事では扱わないため、参考となるソースコードは示しません。
演算子 | 説明 |
---|---|
< | 小なり。左辺値が右辺値と比較して小さい場合に「成功」になります。それ以外の場合は「失敗」になります。 |
<= | 以下。左辺値が右辺値と比較して小さい/等しい場合に「成功」になります。それ以外の場合は「失敗」になります。 |
> | 大なり。左辺値が右辺値と比較して大きい場合に 「成功」になります。それ以外の場合は「失敗」になります。 |
>= | 以上。左辺値が右辺値と比較して大きい/等しい場合に「成功」になります。それ以外の場合は「失敗」になります。 |
<> | 不等号。左辺値が右辺値と比較して等しくない場合に「成功」になります。それ以外の場合は「失敗」になります。 |
= | 等号。左辺値が右辺値と比較して等しい場合に「成功」になります。それ以外の場合は「失敗」になります。 |
条件演算子
「失敗」かそれ以外かにより、「成功」になるか「失敗」になります。
「失敗」になる可能性があるため、失敗コンテキスト内でのみ使用できます。
失敗コンテキストについては本記事では扱わないため、参考となるソースコードは示しません。
演算子 | 説明 |
---|---|
not | 否定。式の「成功」と「失敗」を反転させます。 |
and | 論理積。左側の式と右側の式が成功した場合に「成功」となり、それ以外は「失敗」になります。 |
or | 論理和。左側の式もしくは右側の式のどちらかが「成功」した場合に「成功」となり、両方「失敗」した場合に「失敗」になります。 |
数学演算子
変数や値に対して、算術演算や文字列連結できる演算子です。
演算子が +
の場合のみ、文字列をサポートします。
また、演算子 /
については int
型と float
型で仕様が異なります。
演算子 | 説明 |
---|---|
+ | 加算。左辺値と右辺値を合計した値を生成します。値が文字列の場合は連結した文字列を生成します。 |
– | 減算。左辺値から右辺値を引いた値を生成します。 |
* | 乗算。左辺値と右辺値を乗算した値を生成します。 |
/ | 除算。左辺値を右辺値で除算した値を生成します。int 型の場合は「失敗」となる場合があり、結果は rational 型の値を生成します。 |
+= | 加算代入。左辺値と右辺値を合計した値を、左辺値に代入します。変数の書きかえとなるため set が必要です。値が文字列の場合は連結した文字列が代入されます。 |
-= | 減算代入。左辺値から右辺値を引いた値を、左辺値に代入します。変数の書きかえとなるため set が必要です。 |
*= | 乗算代入。左辺値と右辺値を乗算した値を、左辺値に代入します。変数の書きかえとなるため set が必要です。 |
/= | 除算代入。左辺値を右辺値で除算した値を、左辺値に代入します。float 型の場合のみ利用可能です。 |
数学演算子を使ったVerseプログラムの例を示します。
ConstIntVar := 2
ConstFloatVar := -1.5
ConstStringVar := "Hello, "
var IntResult : int = 0
var FloatResult : float = 0.0
var StringResult : string = ""
set IntResult = 3 + 5
Print("IntResult: {IntResult}") # 「IntResult: 8」が表示される
set IntResult = 3 + ConstIntVar
Print("IntResult: {IntResult}") # 「IntResult: 5」が表示される
set FloatResult = 2.0 + 3.0
Print("FloatResult: {FloatResult}") # 「FloatResult: 5.000000」が表示される
set FloatResult += ConstFloatVar
Print("FloatResult: {FloatResult}") # 「FloatResult: 3.500000」が表示される
set StringResult = "Hello, " + "UEFN!"
Print("StringResult: {StringResult}") # 「StringResult: Hello, UEFN!」が表示される
set StringResult = ConstStringVar + "Verse Programming!"
Print("StringResult: {StringResult}") # 「StringResult: Hello, Verse Programming!」が表示される
set IntResult = 3 - 5
Print("IntResult: {IntResult}") # 「IntResult: -2」が表示される
set IntResult = 3 - ConstIntVar
Print("IntResult: {IntResult}") # 「IntResult: 1」が表示される
set FloatResult = 2.0 - 3.0
Print("FloatResult: {FloatResult}") # 「FloatResult: -1.000000」が表示される
set FloatResult -= ConstFloatVar
Print("FloatResult: {FloatResult}") # 「FloatResult: 0.500000」が表示される
set IntResult = 3 * 5
Print("IntResult: {IntResult}") # 「IntResult: 15」が表示される
set IntResult = 3 * ConstIntVar
Print("IntResult: {IntResult}") # 「IntResult: 6」が表示される
set FloatResult = 2.0 * 3.0
Print("FloatResult: {FloatResult}") # 「FloatResult: 6.000000」が表示される
set FloatResult *= ConstFloatVar
Print("FloatResult: {FloatResult}") # 「FloatResult: -9.000000」が表示される
set FloatResult = 6.0 / 0.5
Print("FloatResult: {FloatResult}") # 「FloatResult: 12.000000」が表示される
set FloatResult /= ConstFloatVar
Print("FloatResult: {FloatResult}") # 「FloatResult: -8.000000」が表示される
このプログラムをクラス output_logs
デバイスのメンバ関数 OnBegin
に追加して実行したときのログ画面を示します。
クラス output_logs
の作り方については、次の記事を参考にしてください。
クエリ演算子
クエリ演算子は、型が logic
の変数が true
か否か確認し、false
の場合は「失敗」となる演算子です。
「失敗」になる可能性があるため、失敗コンテキスト内でのみ使用できます。
失敗コンテキストについては本記事では扱わないため、参考となるソースコードは示しません。
演算子 | 説明 |
---|---|
? | クエリ。変数が true 場合に「成功」となり、値として true を返します。false の場合は「失敗」になります。 |
以上が、演算子の種類です。
その他、UEFNのVerseに関する情報は、以下の記事にまとめています。