COBOL2002 言語 拡張仕様編


5.5.2 ブール形式データが書ける文(ブール形式データを扱う機能)

〈この項の構成〉

(1) ACCEPT文(ブール形式データを扱う機能)

一般規則
  1. 書き方1のACCEPT文(ハードウェア装置からデータを読み込んでデータ項目に入れる文)に書く一意名1のデータ項目がブールならば,その用途は表示用(DISPLAY)でなければならない。

  2. 書き方2のACCEPT文(仮想データ項目DATE,DAY,TIMEまたはDAY-OF-WEEKの値をデータ項目に入れる文)に書く一意名のデータ項目は,ブール項目であってはならない。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.1 ACCEPT文

(2) COMPUTE文(ブール形式データを扱う機能)

形式

[図データ]

機能

ブール式の値をデータ項目に収める。

構文規則
  1. 等号「=」の前後には,一つ以上の空白を空ける。

  2. 一意名1は,ブール項目でなければならない。

一般規則
  1. ブール式の値は,MOVE文の規則に従って,一意名1のデータ項目に転記される。一意名1のデータ項目を複数指定しているときは,それぞれの一意名1のデータ項目にブール式の値が転記される。

    ブール式の書き方や計算順序については,「5.5.1 文に共通な規則(ブール形式データを扱う機能)」を参照のこと。ブール式の値をデータ項目に転記する例を次に示す。

    (例)

       01 A PIC 1(3) VALUE B'111'.
       01 B PIC 1(3) VALUE B'101'.
       01 C PIC 1(3).
           :
           COMPUTE C = A AND B.

[図データ]

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.8 COMPUTE文

(3) DISPLAY文(ブール形式データを扱う機能)

一般規則
  1. 一意名1として外部ブール項目および内部ブール項目を指定できる。

    外部ブール項目は,表示するときに変換しない。内部ブール項目は,表示するときに外部ブール形式に変換する。転送する項目のサイズは,どちらもPICTURE句で指定したサイズである。

  2. ハードウェア装置へ転送するデータとしてブール定数を指定できる。定数指定のブール定数は,表示するときに変換しない。転送する項目のサイズは,定数の表すサイズである。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.12 DISPLAY文

(4) EVALUATE文(ブール形式データを扱う機能)

形式

[図データ]

構文規則
  1. 一意名1〜2はブール項目の名前であってもよい。定数1〜2はブール定数であってもよい。このとき,範囲式は指定できない。

  2. 条件1または条件2は,ブール項目やブール定数を用いた比較条件,ブール項目に関連づけられた条件名条件,ブール検査の字類条件およびそれらを用いた複合条件であってもよい。

  3. 選択主体や選択対象の中に,ブール演算子が現れてはならない。

一般規則
  1. 一意名,または定数は,比較条件の規則に従って比較される。

  2. 条件式は,その評価された真理値がTRUE,FALSE,または対応する条件式の真理値と比較される。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.18 EVALUATE文

(5) INITIALIZE文(ブール形式データを扱う機能)

形式

[図データ]

一般規則
  1. REPLACINGにBOOLEANを指定した場合,定数1はブール定数またはブール値を表す表意定数でなければならない。

  2. 一意名1にブール項目を指定できる。

    REPLACINGを指定しない場合,一意名1のブール項目にはゼロが初期設定される。

    REPLACINGを指定した場合,一意名1のブール項目は,一意名2または定数1の値で初期設定される。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.24 INITIALIZE文

(6) INSPECT文(ブール形式データを扱う機能)

TALLYING指定の一意名2(計算用の整数項目)を除くすべての一意名に,用途がDISPLAYであるブール項目(ブール定数を除く)を指定できる。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.25 INSPECT文

(7) MOVE文(ブール形式データを扱う機能)

(a) 項目間の転記の規則

  • 受け取り側作用対象が英数字項目のときは,送り出し側作用対象はブール項目またはブール定数であってもよい。その場合,受け取り側作用対象の英数字項目は外部ブール項目とみなされる。

    受け取り側作用対象が英数字編集項目のときは,送り出し側作用対象はブール項目であってはならない。

  • 受け取り側作用対象がブール項目のときは,送り出し側作用対象はブール項目,ブール定数,0か1から成る英数字項目または表意定数のZEROでなければならない。送り出し側作用対象が英数字項目の場合,その英数字項目を外部ブール項目とみなして転記する。

    このとき項目の転記は,標準的なけた寄せの規則に従って転記される。すなわち,最左端を合わせて収めた上で,送り出し側作用対象の項目が短いときは受け取り側作用対象の右端にブール文字0が補われる。送り出し側作用対象の項目が長いときは,右側の余った文字は切り捨てられる。

(例)
         05 A PIC 1(5).
         05 B PIC X(3).
         05 C PIC X(3).
             :
           MOVE B TO A.…(1)
           MOVE C TO A.…(2)
 

Bの内容:111

Cの内容:000

のとき,(1)と(2)のMOVE文を実行すると,ブール項目Aの内容は次のとおりになる。

(1)の場合11100

(2)の場合00000

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.28 MOVE文

(8) プログラム間連絡,利用者定義関数,メソッドのUSING指定と返却項目

呼び出し先プログラム,利用者定義関数,メソッドの手続き部見出し,ENTRY文,CALL文,INVOKE文のUSING指定の作用対象とRETURNING指定の返却項目にブール項目を書ける。ただし,引数が参照渡しまたは内容渡しの場合,呼び出し元と呼び出し先の双方でバイト境界に調整しておかなければならない。また,INVOKE文のRETURNINGに指定した返却項目もバイト境界に調整しておかなければならない。