ADD ステートメントは、2 つ以上の数字オペランドを合計し、 その結果を保管します。
フォーマット 1: ADD ステートメント .----------------. .-------------------. V | V | >>-ADD----+-ID-1-------+-+--TO----ID-2--+---------+-+-----------> '-リテラル-1--' '-ROUNDED-' >--+------------------------------------------+-----------------> '-+----+--SIZE ERROR---命令ステートメント-1--' '-ON-' >--+-----------------------------------------------+------------> '-NOT--+----+--SIZE ERROR---命令ステートメント-2--' '-ON-' >--+---------+------------------------------------------------->< '-END-ADD-'
キーワード TO の前にあるすべての ID やリテラルが加算され、 この合計が、ID-2 に加算され保管されます。この処理は、 ID-2 が連続する場合、それぞれの ID-2 ごとに、ID-2 が指定されている 順序で左から右へと繰り返されます。
フォーマット 2: GIVING 句を含む ADD ステートメント .----------------. V | >>-ADD----+-ID-1-------+-+--+----+--+-ID-2-------+--------------> '--リテラル-1-' '-TO-' '-リテラル-2--' .-------------------. V | >--GIVING----ID-3--+---------+-+--------------------------------> '-ROUNDED-' >--+------------------------------------------+-----------------> '-+----+--SIZE ERROR---命令ステートメント-1--' '-ON-' >--+-----------------------------------------------+------------> '-NOT--+----+--SIZE ERROR---命令ステートメント-2--' '-ON-' >--+---------+------------------------------------------------->< '-END-ADD-'
キーワード GIVING の前にあるオペランドの値は互いに加算され、 その合計は、ID-3 によって参照される各データ項目の新しい値として 保管されます。
フォーマット 3: CORRESPONDING 句を含む ADD ステートメント >>-ADD--+-CORRESPONDING-+--ID-1--TO--ID-2--+---------+----------> '-CORR----------' '-ROUNDED-' >--+------------------------------------------+-----------------> '-+----+--SIZE ERROR----命令ステートメント-1-' '-ON-' >--+-----------------------------------------------+------------> '-NOT--+----+--SIZE ERROR----命令ステートメント-2-' '-ON-' >--+---------+------------------------------------------------->< '-END-ADD-'
ID-1 内の基本データ項目が加算されて、対応する ID-2 内の基本項目に保管されます。
すべてのフォーマット全部に関して次のことが言えます。
フォーマット 2 では、ワード GIVING の後にあるもの以外は、基本数字項目でなければなりません。ワード GIVING に続く各 ID には、 基本数字項目または数字編集項目を指名しなければなりません。
フォーマット 3 では、英数字グループ項目または国別グループ項目を 指定する必要があります。
以下の制約事項は、日付フィールドに適用されます。
ID-1 または ID-2 のいずれも日付フィールドを指定しない場合は、ID-3 に 1 つ以上の日付フィールドを指定することができ、日付フォーマットに関する制約事項はありません。
1 つ以上の日付フィールドに関連する ADD ステートメントの結果を判別するには、次の 2 つのステップがあります。
数字データ項目または数字リテラルを指定できる場所であればどこでも、 浮動小数点データ項目および浮動小数点リテラルも使用できます。
ARITH(COMPAT) コンパイラー・オプションが有効な場合は、オペランドの合成が最大 30 桁になります。 ARITH(EXTEND) コンパイラー・オプションが有効な場合は、オペランドの合成が最大 31 桁になります。 詳細については、算術ステートメントのオペランド および 「Enterprise COBOL プログラミング・ガイド」の算術の中間結果についてを 参照してください。
この明示的範囲終了符号は、ADD ステートメントの 範囲を区切るために使用されます。END-ADD を使用すると、 条件付き ADD ステートメントを別の条件ステートメントにネストさせることができます。END-ADD は、命令の ADD ステートメントと共に使用することもできます。
詳しくは、範囲区切りステートメントを参照してください。