COBOL2002 ユーザーズガイド


5.1.4 CORRESPONDING指定

CORRESPONDING指定は,ADD文,SUBTRACT文,およびMOVE文で使用します。

CORRESPONDING指定については,マニュアル「COBOL2002 言語 標準仕様編」 「10.6.5 CORRESPONDING指定」を参照してください。

CORRESPONDING指定をすると,一つの文で集団項目中の幾つもの「対応する」項目間の加減算や転記ができます。

CORRESPONDINGを指定したMOVE文,ADD文,またはSUBTRACT文で,対応する項目が一つもない場合は,転記が行われません。

対応とは,D1とD2をそれぞれ集団項目の一意名とするときに,D1とD2から一つずつとったデータ項目の組が,次の条件を満たす場合を指します。

(例1)

[図データ]

  • D1同士とF1同士は対応します。

  • H1は一方が基本項目で他方が集団項目ですが,MOVE文では,基本項目から集団項目への転記ができるので対応しています。ただし,ADD文およびSUBTRACT文では基本項目でなければならないので,対応しません。

  • B1,C1は集団項目なので対応しません。

  • E1は修飾語の系列が異なる(E1 OF C1 OF B1とE1 OF C1 OF H1)ので対応しません。

つまり,(A)は(B)と同じことになります。

(A)
MOVE CORRESPONDING X TO Z
(B)
MOVE D1 OF C1 OF B1 OF X TO D1 OF C1 OF B1 OF Z
MOVE F1 OF C1 OF B1 OF X TO F1 OF C1 OF B1 OF Z
MOVE H1 OF X             TO H1 OF Z
(例2)

[図データ]

  • A1とE1は対応します。

  • B1はOCCURS句を含む項目,C1,D1はOCCURS句を含む項目に従属する項目なので,対応しません。

  • F1はREDEFINES句を含む項目なので対応しません。

つまり,(A)は(B)と同じことになります。

(A)
MOVE CORRESPONDING Y TO Z
(B)
MOVE A1 OF Y TO A1 OF Z
MOVE E1 OF Y TO E1 OF Z