論理式は、条件文およびループ文 (if、while、 for、case など) を通してプログラム・ロジックがたどるパスを決定します。
次の表は、基本論理式の演算子とオペランドを要約したものです。 基本論理式は、オペランド、比較演算子、および第 2 オペランドから構成されます。
| 第 1 オペランド | 比較演算子 | 第 2 オペランド |
|---|---|---|
| 日付/時刻式 | ==, != , <, >, <=, >= | 日付/時刻式 最初および 2 番目の式は、互換タイプのものでなければなりません。 EGL における代入の互換性 を参照してください。 日付/時刻を比較する場合、より大符号 (>) はより遅い時刻を意味し、より小符号 (<) はより早い時刻を意味します。 |
| 数式 | ==, != , <, >, <=, >= | 数式 |
| ストリング式 | ==, != , <, >, <=, >= | ストリング式 EGL における代入の互換性 を参照してください。 |
| ストリング式 | like | 正規表現 ストリング式 の比較対象となる文字フィールドまたはリテラル。 比較は、左から右へと文字位置単位で実行されます。 正規表現 には、ワイルドカードとエスケープ文字を含めることができます。 |
| ストリング式 | matches | 正規表現 ストリング式 の比較対象となる文字フィールドまたはリテラル。 比較は、左から右へと文字位置単位で実行されます。 正規表現 には、ワイルドカードとエスケープ文字を含めることができます。like 演算子と matches 演算子とでは、正規表現の規則が異なります。 |
| NUM または CHAR 値 | ==, != , <, >, <=, >= | NUM または CHAR 値 |
| searchValue | in | arrayName 詳しくは、in 演算子を参照してください。 |
| 基本レコード内の変数 |
|
次のどちらかを実行する。
|
| sysVar.systemType |
|
詳しくは、systemTypeを参照してください。 |
| record name |
|
レコード編成に適合した入出力エラー値。入出力エラー値 を参照してください。 |
「and」(&&) あるいは「or」演算子 (||) を使用して基本式のペアを組み合わせ、複合式を作成することができます。 また、「not」演算子 (!) を使用して、式の値を反対にする (TRUE を FALSE に、FALSE を TRUE に変更) ことができます。
var01 == var02 || 3 in array03 || x == y
var01 と var02 が等しくない場合、評価が続行されます。 値 3 が array03 内にある場合、式全体が TRUE となり、EGL は最後の基本論理式 (x == y) を評価する必要がありません。
同様に、基本論理式を「and」演算子で結合した場合、基本論理式の 1 つが FALSE に解決されると、EGL は評価を停止します。 次の例では、 var01 が var02 と同じでないことが判明した時点で、評価が停止されます。
var01 == var02 && 3 in array03 && x == y
| プラットフォーム | 問題 |
|---|---|
| COBOL 生成 | COBOL では、MBCHAR や DBCHAR を UNICODE や STRING と比較する方法が提供されていません。 |
| JavaScript 生成 | is 演算子および not 演算子のバリエーションのうち、サポートされるのは、sysVar.systemType の使用と、blanks と numeric のレコード固有テストのみです。 サポートされないデータ型は、ArrayDictionary、BIN (小数点以下の桁数を含むもの)、BLOB、CHAR、CLOB、DBCHAR、HEX、INTERVAL、MBCHAR、NUMC、STRING (サイズ制限を含むもの)、PACF、UNICODE、および構造化されたレコード・パーツです。 |
| VisualAge® Generator 互換モード | is または not を使用して、 vgLib.getVAGSysType() から戻された値をテストすることはできません。 |