関係演算子 (比較演算子とも呼ばれる) は、2 つの式を比較します。
expr1 operator expr2
expr1、expr2
任意の式。
operator
演算子は、<、>、<=、=<、>=、=>、<>、><、= のいずれかです。
2 つの数値オペランドと関係 (比較) 演算子から構成される式の結果は、True または False です。ただし、どちらか一方または両方のオペランドが NULL であれば、結果は NULL になります。
LotusScript® での True (-1) と False (0) の値の扱いについては、「データ型、定数、変数」の章の「論理値」を参照してください。
次の表は、どちらも NULL でない場合の 2 つの式の比較結果です。
演算子 |
演算 |
結果は True |
結果は False |
---|---|---|---|
< |
より小さい |
expr1 < expr2 |
expr1 >= expr2 |
<= または =< |
以下 |
expr1 <= expr2 |
expr1 > expr2 |
> |
より大きい |
expr1 > expr2 |
expr1 <= expr2 |
>= または => |
以上 |
expr1 >= expr2 |
expr1 < expr2 |
= |
等しい |
expr1 = expr2 |
expr1 <> expr2 |
<> または >< |
等しくない |
expr1 <> expr2 |
expr1 = expr2 |
関係演算子は expr1 と expr2 のデータ型に応じて、数値比較か文字列比較のいずれかとして解釈されます。次の表は、これらの解釈を示しています。数値のデータ型は、Integer、Long、Single、Double、Currency、日付/時刻 (Variant 型の変数のみ) です。
一方のオペランド |
他方のオペランド |
演算 |
---|---|---|
数値 |
数値 |
数値比較。 |
数値 |
数値データ型の Variant 型、または数値に変換できる文字列値を含む Variant 型 |
数値比較。 |
数値 |
数値に変換できない String 型の値を含む Variant |
型の不一致エラー |
数値 |
EMPTY を含む Variant 型 |
EMPTY 式としてゼロを使用した数値比較 |
文字列 |
文字列 |
文字列比較 |
文字列 |
Variant 型 (NULL 以外) |
文字列比較 |
文字列 |
EMPTY を含む Variant 型 |
文字列比較 |
文字列値を含む Variant 型 |
文字列値を含む Variant 型 |
文字列比較 |
EMPTY を含む Variant 型 |
文字列値を含む Variant 型 |
EMPTY 式として空の文字列 ("")を使用した文字列比較 |
数値データ型の Variant 型 |
数値データ型の Variant 型 |
数値比較。 |
EMPTY を含む Variant 型 |
数値データ型の Variant 型 |
EMPTY 式としてゼロを使用した数値比較 |
数値データ型の Variant 型 |
文字列値を含む Variant 型 |
数値比較。数式は文字列式よりも小さい |
EMPTY を含む Variant 型 |
EMPTY を含む Variant 型 |
式は等しい。 |
文字列比較の場合は、Option Compare ステートメントで比較方法を設定します。
Option Compare ステートメントを省略すると、既定では、文字列の比較方法は Option Compare Case、Option Compare Pitch と同じになります。
文字列を比較するとき、LotusScript は、各文字列の最初の文字から 1 文字ずつ調べます。2 つの文字の照合順序の値 (文字の順序内における位置の前後関係) が比較されます。
この処理が 2 つの文字列の終りに同時に達した場合、2 つの文字列は同じ長さで等しいと評価されます。それ以外の場合、長さがより長い文字列は、より大きな文字列です。
比較演算でオペランドのデータ型が異なる場合、可能であれば、比較の前に同等のデータ型に変換されます。
BOOLEAN 型
BYTE 型
INTEGER
LONG 型
SINGLE 型
DOUBLE
CURRENCY
日付/時刻の値に対する関係演算は、日付と時刻の両方に対して行われます。2 つの日付/時刻の値が等しくなるためには、日付と時刻の両方が等しくなければなりません。等しくないというのは、少なくともどちらか一方が等しくないということです。これ以外の演算については、比較は、最初に日付に対して行われます。日付が等しければ、時刻に対しても比較が行われます。
数値を比較します。
Print 1 < 2 ' Prints True
Print 2 > 1 ' Prints True
Print 1 <> 2 ' Prints True
Print 2 >= 2 ' Prints True
Print 2 <= 2 ' Prints True
Print 2 = 2 ' Prints True
文字列を比較します。
Print "hello" < "hellp" ' Prints True
Dim myVar As Variant, myStr As Variant
myStr = "34"
myVar = 34
Print myVar < myStr ' Prints True
Print 45 > myStr ' Prints True
Print "45" > myVar ' Prints True
2 つの数値をより詳細に比較します。
anInt% = 10
anotherInt% = 15
Dim theResultV As Variant
If anInt% > anotherInt% Then
Print anInt% & " is greater than " & anotherInt% & "."
Else
Print anInt% & " is less than or equal to " & _
anotherInt% & "."
End If
' Output: 10 is less than or equal to 15.
theResultV = (anInt% > anotherInt%)
Print theResultV
' Output: False
Print CInt(anInt% > anotherInt%)
' Output: 0
Print (anInt% > anotherInt%) = False
' Output: True
' because the expression (anInt% > anotherInt%) = False
' is True.