比較演算子

REXX 比較演算子は、2 つの項を比較して、結果が真なら値 1 を、それ以外なら 0 を戻します。比較演算子は、数字または文字ストリングを比較できます。最もよく使用される比較演算子は、次のとおりです。

演算子
意味
=
等しい
¬=, \=
等しくない
<
次より小
¬<, \<
未満でない
>
次より大
¬>, \>
以下
<=
次以下
>=
次以上
><
より大きいかより小さい (等しくないと同等)
<>
より小さいかより大きい (等しくないと同じ)

「not」文字 (¬) は、円記号 (¥) と同じです。どちらの文字も同様に使用可能です。

これらの比較演算子を使用して項を比較するときには、式の項が両方とも数値であれば、REXX は数値比較を実行します。それ以外のときは、両方の項が文字ストリングとして扱われ、REXX は文字比較を実行します。(REXX 内の数字は、1 個以上の 10 進数字、オプションの小数点、およびオプションの先頭符号文字を含むストリングです。ストリングは、1 個以上の先行または末尾ブランクを含むことができ、符号文字は 1 個以上のブランクによって数字と分離することができます。)

文字比較では、先行および末尾ブランクは無視され、短いほうのストリングの右側にブランクが埋め込まれます。文字比較では、大/小文字が区別されます。したがって、小文字が大文字に変換されないようにするためには、文字ストリングを引用符で区切る必要があります。例えば、フィールド #4MixedCase という値が入っていると、次の比較演算はどちらも真になります。

#4 = 'MixedCase'
#4 = '    MixedCase     '

しかし、次の比較演算は真になりません。

#4 = MixedCase

数値比較では、2 つの数値を引き算して (差を計算して)、その結果と 0 を比較することによって比較を行います。例えば、次の比較演算は、

#6 = 10

次の演算と同じです。

(#6 - 10) = 0

これらの比較演算子の他にも、REXX は、 主に文字ストリングの比較に使用される、多数の「厳密な」比較演算子を提供しています。厳密な比較演算子は、すべて == (厳密に等しい) のように、演算を定義する文字の 1 つが二重になっています。

厳密な比較演算子は、次のとおりです。

演算子
意味
==
厳密に等しい
¬==, \==
厳密に等しくない
<<
厳密により小さい
¬<<, \<<
厳密により小さくない
>>
厳密により大きい
¬>>, \>>
厳密により大きくない
<<=
厳密により小さいか等しい
>>=
厳密により大きいか等しい

== 比較演算子 (厳密に等しい) を使用するときは、厳密に等しくするためには、比較される 2 つの文字ストリングが (一文字一文字) 同一で、長さが同じでなければなりません。先行および末尾ブランクは、意味を持ちます。例えば、引き続き、#4 という値が入ったフィールド MixedCase を例に取れば、次の比較演算のうち真になるのは、初めのほうだけです。

#4 == 'MixedCase'
#4 == '    MixedCase     '

同じように、>><< といった厳密な比較演算子も、比較対象のどちらのストリングにも埋め込みをせずに、単純な文字単位の比較を行います。2 つのストリングの比較は、左から右に行われます。一方のストリングが他方のストリングよりも短く、また他方のストリングの先行サブストリングになっていれば、そのストリングは、他方のストリングより小さいことになります。厳密な比較演算子は、2 つの項の数値比較は実行しませんので、数値フィールドの比較には使用しないでください。