条件式

条件式(conditional expression)は、実行用プログラムの流れを制御する条件を表わす。条件を評価した結果の真理値に応じて、プログラムの処理の経路が選択される。条件式は、

EVALUATE(評価)、

IF(判断)、PERFORM(実行)、SEARCH(表引き)の各文の中に指定する。条件式は単純条件と複合条件に分類される。どちらの種類の条件も、任意の数のかっこで囲むことができる。かっこで囲んでも、条件の種類は変わらない。

OSVSシステム指令を設定した場合、条件式の中で部分参照を行うことはできない。

単純条件

単純条件(simple condition)には、比較条件、字類条件、条件名条件、スイッチ状態条件、符号条件がある。単純条件は真理値として、「真」または「偽」のどちらかをとる。単純条件をかっこで囲んでも、真理値は変わらない。

比較条件

比較条件(relation condition)は、2つの作用対象を比較する。各作用対象には、一意名によって参照されるデータ項目、定数、算術演算によって算出される値を使用できる。比較条件は、作用対象の間に関係が成立するときに、真理値「真」をとる。2つの数字作用対象を、それぞれのUSAGE句に指定されている形式に関係なく、比較できる。その他の比較においては、作用対象の用途は同じでなければならない。作用対象のどちらかが集団項目である場合は、文字の比較規則が適用される。

文字定数をかっこで囲むことができる。

比較条件の一般形式は下記のとおり。

比較文字の">" , "<", "=" は必要語であるが、下線が引かれていないことに注意。これは、"≧" のような他の記号との混同を避けるためである。

" = TO"と " > THAN" と " < THAN" も使用できる。

最初の作用対象(一意名-1、定数-1、算術式-1)を、条件の左辺(subject of condition)と呼ぶ。2番目の作用対象(一意名-2、定数-2、算術式-2)を条件の右辺(object of condition)と呼ぶ。比較条件では少なくとも1つの変数を参照しなければならない。

比較演算子(relational operator)は、比較条件の中で行う比較の種類を指定する。比較演算子としての予約語は、前後を空白で区切らなければならない。 必要語または比較文字の前に"NOT" を付けたものは、1つの比較演算子である。たとえば、"NOT EQUAL" は「等しくない」ことを「真」とすることを表わし、"NOT GREATER" は「以下である」ことを「真」とすることを表わす。各比較演算子の意味を表 10-2に示す。

下記の比較演算子は同義であり、どちらを書いてもよい。:

IS EQUAL TO EQUALS;
IS NOT EQUAL TO IS UNEQUAL TO;
IS GREATER THAN EXCEEDS;
IS NOT GREATER THAN IS LESS THAN OR EQUAL TO;
IS NOT LESS THAN IS GREATER THAN OR EQUAL TO.

>表 10-2: 比較演算子
意味
比較演算子
「より大きい」または「以下」  
「より小さい」または「以上」  
「等しい」または「等しくない」  
「より大きい」または「等しい」  
「より小さい」または「等しい」  
「等しい」  
「等しくない」  
「より大きい」  
必要な比較記号、 '<'、'>'、および '=' に下線が引かれない。 これは、"≧" (「以上」)のような他の記号との混同を避けるためである。
数字作用対象の比較

字類が数字の作用対象に関しては、その代数値が比較される。定数または算術式を表わす数字の数は意味をもたない。ゼロは符号が付いていても付いていなくても、1つの値とみなされる。

これらの作用対象は、その用途がどのように記述されているかにかかわらず、比較することが許される。符号の付いていない数字作用対象は、比較上は、正の数として扱われる。

数字編集項目は、字類が英数字であり、これらの項目は、以下に示す文字作用対象の比較規則に従って比較される。

文字作用対象の比較

文字作用対象どうしの比較、または1つの数字作用対象と1つの文字作用対象の比較は、指定されている文字の照合順序に基づいて行われる。 (環境部の章の実行用計算機段落節を参照。) 一方の作用対象が数字である場合、整数データ項目または整数定数にする。そして、下記のことに注意する。

  1. 文字作用対象が基本データ項目または文字定数であるならば、数字作用対象は、標準データ形式で同じ大きさの英数字基本データ項目に転記されたように扱われる。そして、この英数字データ項目の内容が、文字作用対象と比較される。(手続き部 - MERGE - OPEN章のMOVE(転記)文節を参照。)

  2. 文字作用対象が集団項目であるならば、数字作用対象は、標準データ形式で同じ大きさの集団項目に転記されたように扱われる。そして、この集団項目の内容が文字作用対象と比較される。(手続き部 - MERGE - OPEN章のMOVE(転記)文節を参照。)

  3. 整数ではない数字作用対象は、文字作用対象とは比較できない。

作用対象の大きさは、作用対象中の標準データ形式文字の合計数である。

表意定数を持つ数字編集データ項目を比較することができる。これは英数字比較として扱われる。

用途が違っていても、数字作用対象と文字作用対象を比較できる。数字作用対象は、標準データ形式で同じ大きさのUSAGE DIAPLAY項目に転記されたように扱われる。そして、この内容が文字作用対象と比較される。

比較処理は2つの場合に分けられる。

  1. 作用対象の大きさが等しい場合: 両方の作用対象の大きさが等しい場合は、上位の文字位置から下位へ向けて、対応する文字が順々に比較される。この比較は、対応する文字を比較して不一致が見つかるか、または作用対象の末尾にまで達した時点で終了する。両方の作用対象が等しいと判定されるのは、最初から最後まで、対応する文字がすべて等しかったときである。

    不一致であった最初の対応する文字は、文字の照合順序を比較される。そして、照合順序の大きい方の文字を含む作用対象の方が大きい作用対象であるとみなされる。

  2. 作用対象の大きさが等しくない場合: 両方の作用対象の大きさが異なる場合は、短い方の作用対象の後ろに、長い方の作用対象と大きさが同じになるまで空白を付け加えたようにみなして、比較が行われる。
指標名および指標データ項目に関する比較

下記の項目の間でだけ、比較できる。

  1. 2つの指標名。結果は、指標名に対応する出現番号を比較したのと等しい。

  2. 指標名と数字データ項目または数字定数。指標名の値に対応する出現番号が、数字データ項目または数字定数と比較される。

  3. 指標データ名と指標名または他の指標データ項目。実際の値が、変換されることなしに比較される。

  4. 指標名と算術式。指標名の値に対応する出現番号が、式を計算した値と比較される。

  5. 指標データ項目を上記以外のデータ項目または定数と比較すると、結果はどうなるかわからない。

用途がポインタであるデータ項目に関する比較

用途が明示的にまたは暗黙的に、ポインタとされている2つのデータ項目を比較できる。ポインタの比較では、等しいか等しくないかだけを検査する比較演算子だけを使用できる。

一般形式

構文規則

  1. 一意名-1および一意名-3は、連絡節の中の01レベルまたは77レベルの項目を参照する。

  2. 一意名-1および一意名-3は、データ部の中の任意のデータ項目を参照できる。

  3. 一意名-2および一意名-4は、USAGE IS POINTERと指定されている項目を参照する。

  4. 表意定数 NULLは、1つの作用対象にだけ指定できる。

一般規則

  1. 2つの番地が等しいときに、作用対象は等しいとみなされる。それ以外の場合は、作用対象は等しくないとみなされる。

  2. この種の比較条件は、IF、PERFORM、EVALUATE、およびSEARCH(形式 1)の各文の中で指定できる。形式 2のSEARCH文(SEARCH ALL)の中では、この種の比較条件は使用できない。ポインタ・データ項目は、意味のある順序付けをすることができないからである。

用途が手続きポインタであるデータ項目に関する比較

用途が手続きポインタである、2つのデータ項目を比較できる。

一般形式

構文規則

  1. 一意名-1および一意名-2は、USAGE IS PROCEDURE-POINTERと指定されている項目を参照する。

  2. 表意定数NULLは、1つの作用対象にだけ指定できる。

一般規則

  1. 2つの番地が等しいときに、作用対象は等しいとみなされる。それ以外の場合は、作用対象は等しくないとみなされる。

  2. この種の比較条件は、IF, PERFORM, EVALUATE, SEARCH(形式 1)の各文の中で指定できる。 形式 2のSEARCH文(SEARCH ALL)の中では、この種の比較条件は使用できない。ポインタ・データ項目は、意味のある順序付けをすることができないからである。

用途がオブジェクトであるデータ項目に関する比較

2つのオブジェクト参照を比較して、同じオブジェクトを参照しているかを確認できる。

一般形式

構文規則

  1. 表意定数NULLは、1つの作用対象にだけ指定できる。

一般規則

  1. 同じオブジェクトを参照している場合は、作用対象は等しい。そうでない場合は等しくない。

字類条件

機能

字類条件(class condition)は、作用対象が数字であるか英字であるか、

あるいは、小文字の英字であるか、大文字の英字であるか、環境部の特殊名段落中にCLASS句によって指定されている文字集合に属する文字だけが含まれるかを、判定する。

一般形式

構文規則

  1. 作用対象の字類は、下記のように判定される。

    1. すべての文字が、0, 1, 2, 3, ... 9から構成される場合、作用対象は数字である。この場合、演算符号の有無は問わない。

    2. すべての文字が、大文字のA, B, C, ...Z、または

      小文字のa, b, c, ...z、

      または大文字

      と小文字 

      および空白の任意の組合わせから構成される場合、作用対象は英字である。

    3. すべての文字が小文字のa, b, c, ...zおよび空白から構成される場合、作用対象は小文字の英字である。

    4. すべての文字が大文字のA, B, C, ...Zおよび空白から構成される場合、作用対象は大文字の英字である。

    5. すべての文字が特殊名段落中の字類名-1の定義に含まれる文字から構成される場合、作用対象は字類名-1に一致する。

  2. 一意名-1は、用途が明示的または暗黙的にDISPLAYであるデータ項目を参照しなければならない。または、NUMERICかどうか検査する場合、用途はDISPLAY、

    COMPUTATIONAL、COMPUTATIONAL-X、

    COMPUTATIONAL-3、

    COMPUTATIONAL-5、

    またはPACKED-DECIMAL

    のどれかとする。

  3. 一意名-1が関数一意名である場合、英数字関数

    または各国語型関数

    を参照しなければならない。

一般規則

  1. 字類条件が語NOTを含まず、一意名-1が長さゼロの集団項目である場合、字類検査の結果は常に偽となる。

    NOTを指定した場合、NOTとこれに続く語は、真理値を導くための字類検査を定義する 1つの字類条件となる。例えば NOT NUMERICは、作用対象が文字であるかを判断する真偽検査である。字類条件が語NOTを含んでいて、一意名-1が長さゼロの集団項目である場合、字類検査の結果は常に真となる。

    長さゼロの集団項目である場合の字類検査の真理値は、ZEROLENGTHFALSE 指令によって予約されている。

  2. NUMERIC検査は、データ記述項に英字と記述されている項目、または符号付き基本項目を含むと記述されている集団項目に対しては、使用できない。検査対象のデータ項目のデータ記述項に演算符号を付けるように記述されていない場合、その内容が数字でかつ演算符号が付いていないときにだけ、そのデータ項目は数字項目であると判定される。 検査対象のデータ項目のデータ記述項に演算符号を付けるように記述されている場合、その内容が数字でかつ有効な演算符号が付いているときにだけ、そのデータ項目は数字項目であると判定される。SIGN IS SEPARATE句が記述されているデータ項目用の有効な演算符号は、標準データ形式文字の"+"と"-" である。SIGN IS SEPARATE句が記述されていないデータ項目用の有効な演算符号は、COBOL言語の概念の章の文字の表現と基数の選定節を参照。

    NUMERIC検査を、データ記述項に演算子が記述されている基本項目から成る集団項目に対して使用できる。

  3. ALPHABET検査は、データ記述に数字であると記述されているデータ項目に対しては、使用できない。検査対象のデータ項目が英字であると判定されるのは、その内容が大文字の英字"A"から"Z" と空白の任意の組合わせ、

    および小文字の英字"a"から"z"

    と空白の任意の組合わせで構成されているときだけである。

    外部浮動小数点数項目(USAGE DISPLAY)および内部浮動小数点数項目(USAGE COMP-1およびUSAGE COMP-2)には、字類条件を使用できない。

  4. ALPHABETIC-LOWER検査は、データ記述に数字であると記述されているデータ項目に対しては、使用できない。 ALPHABETIC-LOWER検査の結果は、一意名-1によって参照されるデータ項目の内容が、すべて小文字の英字"a" から"z" と空白で構成されているときに、真となる。

  5. ALPHABETIC-UPPER検査は、データ記述に数字であると記述されているデータ項目に対しては、使用できない。ALPHABETIC-UPPER検査の結果は、一意名-1によって参照されるデータ項目の内容が、すべて大文字の英字"A" から "Z" と空白で構成されているときに、真となる。

  6. 字類名-1検査は、データ記述に数字であると記述されているデータ項目に対しては、使用してはならない。

条件名条件(条件変数)

機能

条件名条件(condition-name condition)は、条件変数(condition variable)の値が条件名に対応する値のどれかと等しいか否かを判定する。

一般形式

構文規則

  1. 条件名に、2バイト文字および内部浮動小数点数を使用できる。

  2. 条件名に、外部浮動小数点数を使用できる。

一般規則

  1. 条件名にいくつかの値の範囲が関係付けられている場合、条件変数の値がその範囲内(境界値を含む)に入るか否かが検査される。

  2. 条件変数と条件名の値を比較する際の規則は、比較条件の場合と同じである。

  3. 条件変数の値が条件名に対応する値の中のどれかに等しければ、検査の結果は真となる。

スイッチ状態条件

スイッチ状態条件(switch-status condition)は、

9つある

COBOLスイッチのそれぞれが「オン」の状態にあるか「オフ」の状態にあるかを判定する。

スイッチには、順にSWITCH-0からSWITCH-8という名前が付けられている。

それらの各スイッチの値(「オン」と「オフ」)は、COBOL実行用プログラムの実行を開始するときに、操作員によって設定される。(ランタイムスイッチの詳細については、COBOLシステムのマニュアルを参照。) 条件名に対応するスイッチと「オン」または「オフ」状態は、環境部の特殊名段落の中で定義しておく。環境部の章の特殊名段落節を参照。

一般形式

条件名に定義されている状態にスイッチが設定されていると、検査の結果は真となる。

コンパイラ指令 SWITCH-TYPE を初期値の 1に設定すると、スイッチを設定するランタイム要素の内部からCOBOLスイッチが設定されているかどうかをテストする以外に、スイッチ状態条件を使用することはできない。

コンパイラ指令 DIALECT が ISO2002に設定されると、コンパイラ指令 SWITCH-TYPEが 2に設定される。この場合、実行単位のいずれかのランタイム要素の内部からCOBOLスイッチが設定されているかどうかをテストする以外に、スイッチ状態条件を使用することはできない。

正負条件

正負条件(sign condition)は、算術式の値が正か負かゼロかを判定する。 正負条件の一般形式は以下の通り。

正負条件の必要語に "NOT" を付けたものは、1つの正負条件である。この条件に照らして代数検査が行われ、真理値が求められる。たとえば、 "NOT ZERO" は作用対象の値がゼロでない(正または負) のときに真となる。作用対象は、値がゼロよりも大きいときに正であり、値がゼロよりも小さいときに負であり、値がゼロのときゼロである。算術式は、少なくとも1つの変数を参照しなければならない。

符号検査において、ZEROの代わりにZEROSまたはZEROESを使用できる。

省略引数条件

省略引数条件で、関数、メソッド、またはプログラムに引数が与えられたかどうかが決定される。

一般形式

データ名-1 IS [ NOT ] OMITTED

構文規則

  1. データ名-1 は、省略引数条件が指定された原始要素で定義された仮パラメータでなければならない。

一般規則

  1. OMITTEDのテスト結果は、以下の場合に真となる。

    1. このプログラム、関数、またはメソッドを起動する文の中のデータ名-1に対応する引数として、 一意名または定数でなく、OMITTED指定が使用されている。

    2. 起動する側の文で、その後に続く引数が省略されており、それがデータ名-1に対応する引数である。

    3. データ名-1に対応する引数自体が、省略引数条件が真の仮パラメータである。

  2. NOT およびキーワード OMITTEDを使用する場合は、これらにより、真の値に対して実行される条件が指定される。

INSTANCE-OF条件

INSTANCE-OF条件は、オブジェクト参照が特定のクラスおよびインターフェイスのどちらのインスタンスであるかを決定する。

一般形式

構文規則

  1. オブジェクト一意名-1はオブジェクト参照でなければならない。

  2. クラス名-1は、この原始要素のリポジトリ段落またはクラス制御段落で指定されたクラスの名前でなければならない。

  3. インターフェイス名-1は、この原始要素のリポジトリ段落またはクラス制御段落で指定されたインターフェイスの名前でなければならない。

一般規則

  1. FACTORY指定とONLY指定のどちらも使用しない場合に、オブジェクト一意名-1と名付けられたオブジェクトが、クラス名-1と名付けられたクラスまたはそのサブクラスのインスタンス、およびインターフェイス名-1と名付けられたインターフェイスまたはそのサブインターフェイスのいずれかであれば、INSTANCE-OFテストの結果は真となる。

  2. FACTORY指定を使用し、ONLY指定を使用しない場合に、オブジェクト一意名-1と名付けられたオブジェクトがクラス名-1と名付けられたクラスのファクトリであれば、INSTANCE-OFテストの結果は真となる。

  3. ONLY指定を使用し、FACTORY指定を使用しない場合に、オブジェクト一意名-1と名付けられたオブジェクトがクラス名-1と名付けられたクラスのインスタンスであり、そのサブクラスでなければ、INSTANCE-OFテストの結果は真となる。

  4. FACTORY指定とONLY指定の両方を使用する場合に、オブジェクト一意名-1と名付けられたオブジェクトがクラス名-1と名付けられたクラスのファクトリであり、そのサブクラスでなければ、INSTANCE-OFテストの結果は真となる。

複合条件

複合条件は、論理的結合子(論理演算子、"AND" および "OR")による単純条件、組み合わせ条件、および複合条件の結合、または、これらの条件の論理否定(論理演算子、"NOT")による否定で形成される。複合条件の真の値は、かっこに囲まれているかどうかにかかわらず、単純条件の個々の真の値に関する、記述されたすべての論理演算子の連携、または、論理的に結合または否定された条件の中間の真の値の結果である真の値である。

論理演算子およびその意味は以下のとおりである。

演算子
意味
AND 論理的な結合。真の値は、結合されている条件が真であれば、"真"。結合されている条件の片方または両方が偽であれば、 "偽"。
OR 論理的な包含。真の値は、包含されている条件の片方または両方が真であれば、、"真"。包含されている条件の両方が偽であれば、 "偽"。
NOT 論理的な否定、または真の値の逆。 真の値は、条件が偽であれば、"真"。条件が真であれば、 "偽"。

論理演算子の前後には、空白を入れなければならない。

否定単純条件

否定単純条件(negated simple condition)は、単純条件に論理演算子の"NOT" を付けたものである。否定単純条件は、単純条件の真理値を逆転させる働きをする。したがって、単純条件の真理値が「偽」のときに否定単純条件の真理値は「真」となり、単純条件の真理値が「真」のときに否定単純条件の真理値は「偽」となる。否定単純条件は、単純条件の真理値を逆転させる働きをする。したがって、単純条件の真理値が「偽」のときに否定単純条件の真理値は「真」となり、単純条件の真理値が「真」のときに否定単純条件の真理値は「偽」となる。否定単純条件をかっこで囲んでも真理値は変わらない。

一般形式

組合せ条件と否定組合せ条件

組合せ条件(combined condition)は、論理演算子の"AND" または "OR" で条件をつないだものである。

一般形式

構文規則

  1. 使用可能な条件は以下の通り。

    • 単純条件

    • 否定単純条件

    • 組合せ条件

    • 否定組合せ条件(組合せ条件をかっこで囲み、前に論理演算子の"NOT" を付けたもの。)

    • 上記の条件の組合せ。表 10-3に要約した規則に従って指定する。

  2. 組合せ条件の中で "AND" または "OR" のどちらか一方だけを使用するときは、かっこを使う必要はまったくない。しかし、 "AND" と "OR" と "NOT" を混ぜ合わせて使用するときは、かっこを使用することによって、最終的な真理値に影響が出る。

一般規則

  1. 組合せ条件にかっこを指定しないと、論理演算子の優先順位(結合力)に従ってどの論理演算子にどの条件が適用されるかが決まり、それに応じて暗黙的にかっこがあるものと想定される。この優先順位は"NOT","AND" , "OR" の順である。たとえば、「条件-1 OR NOT 条件-2 AND 条件-3」と指定すると、暗黙のうちに「条件-1 OR((NOT 条件-2)AND 条件-3)」と指定したことになる。

  2. 組合せ条件にかっこを指定すると、条件と論理演算子を結合するにあたって、かっこを含めた優先順位が適用される。したがって、かっこを使用すると、論理演算子の通常の優先順位を変えることができる。たとえば、上の例において、「(条件-1 OR(NOT 条件-2))AND 条件-3」と指定すると、意味は変わってくる。(後述の条件評価規則節を参照。)

表 10-3に、条件と条件演算子を結び付け、かっこで囲む有効な組合せを示す。左かっこと右かっこは1対1で対応し、左かっこが右かっこよりも左側にこなければならない。

>表 10-3: 条件と論理演算子とかっこの組合せ
要  素 条件式中の位置 直前にきてよい要素 直後にきてよい要素
単純条件 どこでも可 OR, NOT, AND, ( OR, AND, )
OR または AND 最初と最後は不可 単純条件, ) 単純条件, NOT, (
NOT 最後は不可 OR, AND, ( 単純条件, (
( 最後は不可 OR, NOT, AND, ( 単純条件, NOT, (
) 最初は不可 単純条件, ) OR, AND, )

表 からわかるとおり、"OR NOT" は許される組合せであるが、"NOT OR" は許されない組合せである。また、"NOT ( " は許されるが、 "NOT NOT " は許されない)。

略記組合せ比較条件

単純比較条件または否定単純比較条件を、論理結合語で組み合わせていくつも続けて書く場合、先行する比較条件と共通の左辺または左辺と比較演算子があり、かつかっこを使用していなければ、最初のものを除く共通の比較条件を省略できる。下記の2通りの方法がある。

一般形式

一続きの比較条件の中で、上記の両方の形の省略方法を使用できる。略記した場合、先行する明記した最後の左辺が省略した左辺を補うように挿入され、先行する明記した最後の比較演算子が省略した比較演算子を補うように挿入される。 このように暗黙的に左辺および比較演算子が挿入された結果は、表 10-3の規則に合わなければならない。省略した左辺や比較演算子が補われるこの処理は、組合せ条件の中に略記しない単純条件が出てくると終了する。

条件が評価される順序を、かっこを使用することによって変更できる。(下記の例を参照)

略記組合せ比較条件の中で"NOT" を使用した場合、下記のように解釈される。

  1. NOTの直後に GREATER, >, LESS, <, EQUAL, = のどれかが続く場合、NOTは比較演算子の一部と解釈される。ただし、GREATER THAN OR EQUAL TO, >=, LESS THAN OR EQUAL TO, <=は上記の比較演算子に含まれない。

  2. 上記以外の場合、"NOT" は論理演算子として解釈される。したがって、否定比較条件の中に暗黙の左辺または比較演算子が補われる。

略記組合せ比較条件および略記否定組合せ条件と、それに相当する略さない形の例をいくつか下に示す。

略記組合せ比較条件
略さずに書いた場合
a > b AND NOT < c OR d
 
((a > b) AND (a NOT < c)) OR (a NOT < d)
 
a NOT EQUAL b OR c
 
(a NOT EQUAL b) OR (a NOT EQUAL c)
 
NOT a = b OR c
 
(NOT (a = b)) OR (a = c)
 
NOT (a GREATER b OR < c)
 
NOT ((a GREATER b) OR (a < c))
 
NOT (a NOT > b AND c AND NOT d
 
NOT ((((a NOT > b) AND (a NOT > c)) AND (NOT (a NOT > d))))
 
x > a OR y AND z
 
x > a OR (x > y AND x > z)
 
x > a OR (y AND z)
 
x > a OR (x > y AND x > z)
 
x > (a OR y) AND z
 
(x > a OR x > y) AND x > z
 
x ( = a OR > b)
 
x = a OR x > b
 
x = a AND ( > b OR < z )
 
x = a AND ( x > b OR x < z )
 
a EQUAL b OR NOT GREATER OR EQUAL c OR d
 
(a EQUAL b) OR (NOT (a GREATER OR EQUAL c)) OR (a GREATER OR EQUAL d)
 
a EQUAL b OR NOT >=c OR d
 
(a EQUAL b) OR (NOT (a >= c)) OR (a >= d)
 

条件評価規則

暗黙的な評価順序を変更する必要があるときは、かっこを使用して、組合せ条件の個々の条件が評価される順序を指定できる。

かっこ内の条件が先に評価される。かっこが入れ子になっている場合は、最も内側のかっこから順次外側へと評価が進められる。かっこが使用されていないかまたはかっこ内の条件が同じレベルにあるときは、下記の暗黙的な階層順序に従って論理評価が進められ、最終的な真理値が決定される。

  1. 条件に算術式または関数が含まれている場合、その条件が評価されるときに、これらの式および関数の値が算出される。同様に、組合せ条件に否定条件が含まれる場合、この組合せ条件を評価する必要があるときに、否定条件が評価される。(前述の書き方と評価規則を参照。)

  2. 単純条件の真理値が、下記の順で決定される。

    比較(略記比較条件があれば、通常の形に展開してから)
    字類
    条件名
    スイッチ状態
    正負

  3. 否定条件の真理値が決定される。

  4. 組合せ条件の真理値が決定される。論理演算子 "AND" が先に評価され、つづいて論理演算子 "OR" が評価される。

  5. 否定組合せ条件の真理値が決定される。

  6. 一連の条件の評価順序がすべてかっこで指定されていない場合、同じレベルの複数の条件は左から右へ評価される。