5.5.1 文に共通な規則(ブール形式データを扱う機能)
(1) ブール式
(a) ブール式の定義
ブール式とは,ブール値を表現するものであり,次のどれかである。
-
ブール項目を参照する一意名,ブール定数,ALLブール定数または表意定数ZERO(ブール要素と呼ぶ)。
-
ブール要素の前に単項ブール演算子NOTを付けたもの(符号付きブール要素と呼ぶ)。
-
ブール要素や符号付きブール要素を二項ブール演算子でつないだもの。
-
ブール式の前に単項ブール演算子NOTを付けたもの。
-
複数のブール式を二項ブール演算子でつないだもの。
-
ブール式を括弧で囲んだもの。
上記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) 比較条件
比較条件では,ブール項目やブール定数を作用対象として比較をすることができる。ブール作用対象の比較は次の規則に従う。
- 一般規則
-
-
比較条件の右辺および左辺にはブール要素だけを書くことができる。
比較条件中にブール演算子が現れてはならない。
(備考)
比較条件中のAND,ORおよびNOTは論理演算子とみなされる。
-
ブール項目の用途は何でもよい。つまり,外部ブール項目,内部ブール項目のどちらであってもよい。
-
比較条件の左辺がブール作用対象なら,右辺もブール作用対象でなければならない。
-
比較演算子は次のどちらかでなければならない。
IS [NOT] EQUAL TO
IS [NOT] =
-
両辺の対応するブール文字位置のブール文字が,最左端から最右端に至るまですべて等しいとき,両辺は等しいものとみなされる。
-
両辺の長さは等しくなければならない。
-