Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


ADD ステートメント

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 内の基本項目に保管されます。

すべてのフォーマット全部に関して次のことが言えます。

ID-1ID-2
フォーマット 1 では、基本数字項目を指定しなければなりません。

フォーマット 2 では、ワード GIVING の後にあるもの以外は、基本数字項目でなければなりません。ワード GIVING に続く各 ID には、 基本数字項目または数字編集項目を指名しなければなりません。

フォーマット 3 では、英数字グループ項目または国別グループ項目を 指定する必要があります。

以下の制約事項は、日付フィールドに適用されます。

  • フォーマット 1 では、ID-2 は 1 つ以上の日付フィールドを指定することができます。 ID-1 では、日付フィールドを指定する必要はありません。
  • フォーマット 2 では、ID-1 または ID-2 のどちらか (両方ではない) が 1 つの日付フィールドを指定することができます。ID-1 または ID-2 が日付フィールドを指定する場合は、ID-3 のすべてのインスタンスでは、ID-1 または ID-2 で指定された日付フィールドと互換性のある日付フィールドを指定しなければなりません。 すなわち、ウィンドウ表示西暦年でも拡張西暦年でもよい年部分を除いて、 同じ日付フォーマットでなければなりません。

    ID-1 または ID-2 のいずれも日付フィールドを指定しない場合は、ID-3 に 1 つ以上の日付フィールドを指定することができ、日付フォーマットに関する制約事項はありません。

  • フォーマット 3 では、ID-2 内の対応する基本項目だけを日付フィールドにすることができます。これらの日付フィールドのフォーマットに関する制約事項はありません。
  • 年末尾型日付フィールドを ADD ステートメントに指定できるのは、ID-1 としてのみ、および加算の結果が非日付データである場合だけです。

1 つ以上の日付フィールドに関連する ADD ステートメントの結果を判別するには、次の 2 つのステップがあります。

  1. 加算: 日付フィールドが関係する加算のようにして、加算の結果を判別します。
  2. 保管: その結果が受け取りフィールドにどのように保管されるかを判別します。 (フォーマット 1 と 3 では、受け取りフィールドは ID-2 です。フォーマット 3 では、 受け取りフィールドは GIVING ID-3 です。) 詳細については、日付フィールドに関連する算術演算結果の保管を参照してください。
リテラル
これは、数字リテラルでなければなりません。

数字データ項目または数字リテラルを指定できる場所であればどこでも、 浮動小数点データ項目および浮動小数点リテラルも使用できます。

ARITH(COMPAT) コンパイラー・オプションが有効な場合は、オペランドの合成が最大 30 桁になります。 ARITH(EXTEND) コンパイラー・オプションが有効な場合は、オペランドの合成が最大 31 桁になります。 詳細については、算術ステートメントのオペランド および Enterprise COBOL プログラミング・ガイド」の算術の中間結果についてを 参照してください。

ROUNDED 句

フォーマット 1、2、および 3 については、ROUNDED 句を参照してください。

SIZE ERROR 句

フォーマット 1、2、および 3 については、SIZE ERROR 句を参照してください。

CORRESPONDING 句 (フォーマット 3)

CORRESPONDING 句を参照してください。

END-ADD 句

この明示的範囲終了符号は、ADD ステートメントの 範囲を区切るために使用されます。END-ADD を使用すると、 条件付き ADD ステートメントを別の条件ステートメントにネストさせることができます。END-ADD は、命令の ADD ステートメントと共に使用することもできます。

詳しくは、範囲区切りステートメントを参照してください。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)