COBOL2002 言語 拡張仕様編


5.5.1 文に共通な規則(ブール形式データを扱う機能)

〈この項の構成〉

(1) ブール式

(a) ブール式の定義

ブール式とは,ブール値を表現するものであり,次のどれかである。

  1. ブール項目を参照する一意名,ブール定数,ALLブール定数または表意定数ZERO(ブール要素と呼ぶ)。

  2. ブール要素の前に単項ブール演算子NOTを付けたもの(符号付きブール要素と呼ぶ)。

  3. ブール要素や符号付きブール要素を二項ブール演算子でつないだもの。

  4. ブール式の前に単項ブール演算子NOTを付けたもの。

  5. 複数のブール式を二項ブール演算子でつないだもの。

  6. ブール式を括弧で囲んだもの。

上記1〜6のブール式は次の規則に従う。

  • ブール式中の左括弧と右括弧と1対1に対応し左括弧に対応する右括弧は右側になければならない。

  • ブール式は,左括弧,ブール要素またはブール演算子NOTで始め,右括弧はブール要素で終わらなけばならない。

  • ブール式中に,ブール項目やブール定数が合わせて2個以上含まれるときには,それらはすべて同じ長さでなければならない。ただし,ALLブール定数は除く。

(b) ブール演算子

ブール演算子は,単項ブール演算子と二項ブール演算子に分けられる。

  • 単項ブール演算子

    単項ブール演算子には,ブール否定を表すNOTがある。

  • 二項ブール演算子

    二項ブール演算子の種類と意味は次のとおりである。

    二項ブール演算子

    意味

    AND

    ブール積

    OR

    ブール和

    EXOR

    排他ブール和

    ブール演算子は予約語であり,語の前後に空白を空けなければならない。

(c) ブール式の計算順序

ブール式の各要素の計算順序は次の規則に従う。

  • 2個のブール式がAND,ORまたはEXORだけでつながれているとき,または1個のブール式の直前にNOTがあるときは常にAND,OR,EXORまたはNOTはブール演算子である。

  • 括弧を使ってブール式中の要素の評価順序を指定できる。括弧がある場合には,括弧内のブール式が最初に計算される。括弧が入れ子になっている場合には,最も内側の括弧から外側の括弧へと計算される。

  • 括弧がない場合,または括弧で囲まれたブール式が包含関係で同じ水準にある場合,その計算は次の順位に従う。

    1番目:否定(NOT)

    2番目:積(AND)

    3番目:和(ORとEXOR)

(2) 条件式

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「4.7.4 条件式(Conditional expressions)

(a) 比較条件

比較条件では,ブール項目やブール定数を作用対象として比較をすることができる。ブール作用対象の比較は次の規則に従う。

一般規則
  1. 比較条件の右辺および左辺にはブール要素だけを書くことができる。

    比較条件中にブール演算子が現れてはならない。

    (備考)

    比較条件中のAND,ORおよびNOTは論理演算子とみなされる。

  2. ブール項目の用途は何でもよい。つまり,外部ブール項目,内部ブール項目のどちらであってもよい。

  3. 比較条件の左辺がブール作用対象なら,右辺もブール作用対象でなければならない。

  4. 比較演算子は次のどちらかでなければならない。

    IS [NOTEQUAL TO

    IS [NOT] =

  5. 両辺の対応するブール文字位置のブール文字が,最左端から最右端に至るまですべて等しいとき,両辺は等しいものとみなされる。

  6. 両辺の長さは等しくなければならない。

(b) 条件名条件

条件名条件には,ブール項目に関連づけられた条件名を指定できる。

(c) 字類条件

作用対象の字類が,ブールであるかを調べることができる。

形式

[図データ]

一般規則
  1. BOOLEAN指定

    一意名1のデータ項目のブール検査をする。

    ・作用対象である一意名1のデータ項目の用途は,表示用(DISPLAY)のブール項目,英数字項目または集団項目でなければならない。

    ・検査の対象となる項目が,0または1のブール文字だけから成るときに限ってブール検査の結果は真となる。