比較演算子(<、<=、>、>=)は、数値、引用符付き文字列、および行列に対して使用できます。行列の場合、各要素を比較した結果の行列が生成されます。文字列と数値や文字列と行列など、タイプが異なるオペランドを比較すると、結果は欠測値になります。リストを比較することはできず、その場合も欠測値が戻されます。
等価演算子(==と!=)は、数値、引用符付き文字列、行列、およびリストに対して使用できます。行列の場合、各要素が等しいかどうかを表す結果の行列が生成されます。リストの場合は、リスト全体として等しいかどうかを表す結果の値が1つ生成されます。文字列と数値や文字列と行列など、タイプが異なるオペランドが等しいかどうかをテストすると、0(等しくない)という結果になります。
範囲をチェックする演算子を使用すると、2つの指定した値の範囲に入っているかどうかをチェックできます。
a = 1;
Show( 1 <= a < 3 );
b = 2;
Show( 2 < b <= 3 );
1 <= a < 3 = 1;
2 < b <= 3 = 0;
比較演算子はすべて省略演算子(複数の演算を指定する際に省略ができる演算子)です。大部分の演算においては、一度に1つずつ演算子が評価されていきます。しかし、比較演算子で結合されているオペランドは1つの大きなまとまりとして取り扱われます。1つのまとまりとして評価すると、部分ごとに評価する通常の方法とは異なる結果が生成されます。たとえば、次の2つのステートメントはそれぞれ別のものです。
12 < a < 13;
(12 < a) < 13;
最初のステートメントは、3つの引数と両方の演算子すべてが読み取られて一緒に評価されるため、aが12と13の範囲にあるかどうかをチェックします。2つ目のステートメントでは、括弧を使って明示的に処理をグループに分けて、左から順に評価します。そのため、この式では、まず12がaより小さいかどうかをチェックし、真のとき1を、偽のとき0を戻します。次に、その結果(0または1)が13より小さいかどうかをチェックします。0も1も13より小さいので、この結果は必ず真になります。
同じ演算子の組み合わせまたは異なる演算子の組み合わせ(<... <=と <=... <)で使用すると、すべての比較演算子は一度に評価されます。つまり、一度に1つずつ比較演算子を評価する場合には、括弧( )を使って、明示的に操作の順序を制御する必要があることを意味します。
Equal(a, b, ...)
a==b==...
説明
指定されたすべての値を比較し、同じ値かどうかを判定する。
戻り値
すべての引数の結果が同じ値になるときは1(true)
そうでなければ0(false)
引数
2つ以上の変数、参照、行列、または数値。
メモ
– 3つ以上の引数が指定された場合は、すべての引数が同じ値である場合にだけ1が戻されます。この演算子は、主に、条件文や、ループの制御で使用されます。
– 引用符付き文字列の比較では、大文字と小文字が区別されます。
Greater(a, b, ...)
a>b>...
説明
指定された値を比較して、各ペアについて左の値が右の値よりも大きいかどうかを判定する。
戻り値
aがbより大きい(およびbがcより大きい)ときは1(true)
そうでなければ0(false)
引数
2つ以上の変数、参照、行列、または数値。
メモ
3つ以上の引数が指定された場合は、すべての引数の値がそれぞれの右側の引数の値よりも大きい場合にだけ1が戻されます。この演算子は、主に、条件文や、ループの制御で使用されます。
(0 < x <= 5のように)Greater、Less、Greater Or Equal、およびLess Or Equalを同時に指定することもできます。括弧を使ってグループ化した場合を除き、各ペアは左から右へと評価されます。括弧を使って明確に式の評価順を示すこともできます。
Greater or Equal(a, b, ...)
a>=b>=...
説明
指定された値を比較して、各ペアについて左の値が右の値以上かどうかを判定する。
戻り値
aがb以上(およびbがc以上)のときは1(true)
そうでなければ0(false)
引数
2つ以上の変数、参照、行列、または数値。
メモ
3つ以上の引数が指定された場合は、すべての引数の値がそれぞれの右側の引数の値以上である場合にだけ1が戻されます。この演算子は、主に、条件文や、ループの制御で使用されます。
(0 < x <= 5のように)Greater、Less、Greater Or Equal、およびLess Or Equalを同時に指定することもできます。括弧を使ってグループ化した場合を除き、各ペアは左から右へと評価されます。括弧を使って明確に式の評価順を示すこともできます。
Is Missing(expr)
説明
評価後の引数が欠測値のときは1、そうでなければ0を戻す。
次も参照
『スクリプトガイド』のIs Missing
Less(a, b, ...)
a<b<...
説明
指定された値を比較して、各ペアについて左の値が右の値よりも小さいかどうかを判定する。
戻り値
aがbより小さい(およびbがcより小さい)ときは1(true)
そうでなければ0(false)
引数
2つ以上の変数、参照、行列、または数値。
メモ
3つ以上の引数が指定された場合は、第1引数が第2引数以下で、そのほかのすべての引数の値がそれぞれの右側の引数未満である場合にだけ1が戻されます。この演算子は、主に、条件文や、ループの制御で使用されます。
(0 < x <= 5のように)Greater、Less、Greater Or Equal、およびLess Or Equalを同時に指定することもできます。括弧を使ってグループ化した場合を除き、各ペアは左から右へと評価されます。括弧を使って明確に式の評価順を示すこともできます。
Less Less Equal(a, b, c, ...)
a<b<=c<=...
説明
範囲の照合。bがaより大きくc以下であるかを判定する。
戻り値
bがaより大きくc以下のときは1(true)
そうでなければ0(false)
引数
a, b, c
変数、参照、行列、または数値。
メモ
第1引数が第2引数より小さく、残りの各引数が右側の引数以下であるという、2つの条件が両方とも満たされた場合に1を返します。この演算子は、主に、条件文や、ループの制御で使用されます。
Less or Equal(a, b, ...)
a<=b<=...
説明
指定された値を比較して、各ペアについて左の値が右の値以下であるかどうかを判定する。
戻り値
aがb以下(およびbがc以下)のときは1(true)
そうでなければ0(false)
引数
2つ以上の変数、参照、行列、または数値。
メモ
3つ以上の引数が指定された場合は、すべての引数の値がそれぞれの右側の引数の値以下である場合にだけ1が戻されます。この演算子は、主に、条件文や、ループの制御で使用されます。
(0 < x <= 5のように)Greater、Less、Greater Or Equal、およびLess Or Equalを同時に指定することもできます。括弧を使ってグループ化した場合を除き、各ペアは左から右へと評価されます。括弧を使って明確に式の評価順を示すこともできます。
Less Equal Less(a, b, c, ...)
a<=b<c<...
説明
範囲の照合。bがa以上でcより小さいかを判定する。
戻り値
bがa以上でcより小さいときは1(true)
そうでなければ0(false)
引数
a, b, c
変数、参照、行列、または数値。
メモ
第1引数が第2引数以下で、残りの各引数が右側の引数より小さいという、2つの条件が両方とも満たされた場合に1を返します。この演算子は、主に、条件文や、ループの制御で使用されます。
Not Equal(a, b)
a!=b
説明
aとbを比較して、等しくないかどうか判定する。
戻り値
aとbが同値と評価されたときは0(false)
そうでなければ1(true)
引数
a, b
任意の変数または数値。
メモ
主に、条件文や、ループの制御で使用されます。