式の値は式の各部分が評価される順序によって決まります。優先順位の高い演算子は、優先順位の低い演算子よりも先に評価されます。優先順位が同じ演算子は左から右へと評価されます。
式の通常の評価順序を変えるには、カッコを使用します。カッコ内の副式は、式の他の部分よりも先に左から右へと評価されます。
次の表は、演算子の優先順位を示しています。次の表の演算子は、特に明記されている場合を除き 2 項演算子です。同じ行の演算子は、同じ優先順位になります。演算子の優先順位は、高い方から順に次のようになっています。
演算子の種類 |
演算子 |
演算 |
---|---|---|
算術 |
^ |
指数 |
- |
- (単項) マイナス |
|
*, / |
乗算、浮動小数点数の除算 |
|
¥ |
整数除算 |
|
Mod |
剰余演算 (整数の除算の余り) |
|
-, + |
減算、加算 |
|
連結 |
& |
文字列連結 |
関係 (比較) |
=、<>、><、<、<=、=<、>、>=、=>、Like |
数値または文字列の比較。等しい、等しくない、等しくない、より小さい、より小さいか等しい、より小さいか等しい、より大きい、より大きいか等しい、より大きいか等しい、含む (部分文字列のマッチング) |
オブジェクト参照の比較 (関係演算子と同じ優先順位) |
Is、IsA |
オブジェクト型のテスト、同じオブジェクトの参照 |
論理 |
Not |
論理否定 (ビット単位) または 1 の補数 |
And |
論理積 (ビット単位) |
|
Or |
論理和 (ビット単位) |
|
Xor |
排他的論理和 (ビット単位) |
|
Eqv |
論理的等価 (ビット単位) |
|
Imp |
論理包含 (ビット単位) |
|
代入 |
= |
代入 |
次の例では、算術演算子の優先順位を示しています。
Print 6 + 4 / 2 ' Prints 8
Print (6 + 4) / 2 ' Prints 5
Print -2 ^ 2 ' Prints -4
Print (-2) ^ 2 ' Prints 4
次の例では、比較演算子の優先順位を示しています。
Print 5 < 3 ' Prints False
Print 5 > 3 ' Prints True
Print "Alphabet" = "Alpha" & "bet" ' Prints True
Print 4 And 10 - 2 * 3 / 2
' Output: 4 because 2 * 3 = 6
' 6 / 2 = 3
' 10 - 3 = 7 (binary 111)
' 4 (binary 100) And 7 (binary 111) = 4 (binary 100).
演算が行われる順序を変えるには、最初に評価する式をカッコで囲みます。
以下に例を示します。
anInt% = 5
anotherInt% = 10
aThirdInt% = 7
print anInt% - (anotherInt% + aThirdInt%)
' Output: -12
または、次のようにすることもできます。
theResult% = -1 Or -1 Imp 0
Print theResult%
' Output: False
' because -1 Or -1 = True, and True Imp 0 is False.
theResult% = -1 Or (-1 Imp 0)
Print theResult%
' Output: True
' because -1 Imp 0 is False, and -1 Or False is True.
関数は、式の中でどの演算子よりも先に評価されます。
以下に例を示します。
Print -1 > 0
' Output: False
Print Abs(-1) > 0
' Output: True