関係 (比較) 演算子

関係演算子 (比較演算子とも呼ばれる) は、2 つの式を比較します。

構文

expr1 operator expr2

要素

expr1expr2

任意の式。

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

使用法

関係演算子は expr1expr2 のデータ型に応じて、数値比較か文字列比較のいずれかとして解釈されます。次の表は、これらの解釈を示しています。数値のデータ型は、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 つの文字列は同じ長さで等しいと評価されます。それ以外の場合、長さがより長い文字列は、より大きな文字列です。

データ型変換

比較演算でオペランドのデータ型が異なる場合、可能であれば、比較の前に同等のデータ型に変換されます。

日付/時刻の値に対する関係演算は、日付と時刻の両方に対して行われます。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.