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


RETURN ステートメント

RETURN ステートメントは、ソート処理またはマージ処理の最終フェーズから OUTPUT PROCEDURE へレコードを渡します。

RETURN ステートメントは、SORT ステートメントまたは MERGE ステートメン トと関連付けられた OUTPUT PROCEDURE 句の範囲内でのみ使用することができ ます。

構文図を読む構文図をスキップする
フォーマット: RETURN ステートメント

>>-RETURN--ファイル名-1---+--------+--+------------+------------->
                         '-RECORD-'  '-INTO--ID-1-'   

>--+----------------------------------+------------------------>
   '-+----+--END--命令ステートメント-1--'   
     '-AT-'                                

>--+---------------------------------------+--+------------+--><
   '-NOT--+----+--END--命令ステートメント-2--'  '-END-RETURN-'   
          '-AT-'                                                

OUTPUT PROCEDURE 句の中では、 少なくとも 1 つの RETURN ステートメントを指定しなければなりません。

RETURN ステートメントが実行されると、ファイル名-1 の次の位置にあるレコードが OUTPUT PROCEDURE 句による処理のため使用可能になります。

ファイル名-1
データ部の SD 項目に記述されていなければなりません。

ファイル名-1 に関連付けられた複数のレコード記述がある場合、それらのレコードは自動的に同じストレージを共用します。つまり、 そのストレージは暗黙に再定義されます。RETURN ステートメントを実行した後は、現行レコードの内容のみが使用可能です。現行レコードの長さを超えるデータ項目がある場合には、それらの内容は未定義となります。

INTO 句
ファイル名-1 に関連付けられたレコード記述が 1 つだけしかない場合、または ID-1 によって 参照されるすべてのレコードとデータ項目に基本英数字項目または英数字グループ項目が記述されている場合、 INTO 句を指定した RETURN ステートメントの実行結果は、 指定された順序で以下の規則を適用するのと同じことになります。
  • INTO 句を指定しないだけであり、同じ RETURN ステートメントを実行します。
  • 現行のレコードを CORRESPONDING 句を伴わない MOVE ステートメントの規則に従って、 そのレコード域から ID-1 によって指定された領域へ移動します。現在のレコードのサイズは、RECORD 節で指定された規則によって決定されます。 ファイル記述項目が RECORD IS VARYING 節を含む場合には、暗黙の移動はグループ移動になります。 RETURN ステートメントの実行が正しく行われなかった場合には、 暗黙の MOVE ステートメントの実行は行われません。 ID-1 に関連する添え字付けまたは参照変更があれば、レコードが読み取られた後、 データ項目に移動される直前に、それは評価されます。レコードは、そのレコード域と ID-1 によって参照されるデータ項目の両方で使用可能です。

ファイル名-1 に関連付けられたレコード記述が複数あり、それらのすべてに英数字グループ項目または基本英数字項目が記述されていない場合は、以下の規則が適用されます。

  1. ファイル名-1 によって参照されるファイルに可変長レコードが含まれている場合 は、グループ移動が行われます。
  2. ファイル名-1 で参照したファイルが固定長レコードを含んでいる場合は、最大数の文字位置を指定しているレコードを送り出しフィールド記述として使用して、MOVE ステートメントの規則に従って移動が行われます。そのようなレコードが複数存在する場合には、 選択される送り出しフィールド・レコードは、該当するレコードのうちファイル名-1 の記述のもとで最初に現れるレコードとなります。

ID-1 ID-1 は、選択された送り出しレコード記述項目に対して、MOVE ステートメントの規則に従う有効な受け取りフィールドでなければなりません。

ファイル名-1 に関連付けられたレコード域と ID-1 は、 同じストレージ域を占めることはできません。

AT END 句

AT END 句で指定された命令ステートメントは、すべてのレコードがファイル名-1 から戻された後で実行されます。これが実行されると、 それ以上の RETURN ステートメントを現在の出力プロシージャーとして実行することはできません。

RETURN ステートメントの実行中に AT END 条件が発生しなかった場合は、レコ ードが使用可能にされた後、および INTO 句を指定したことで生じた暗黙の MOVE の実行後に、NOT AT END 句で指定された命令ステートメントに制御が移 されます。AT END 条件が発生した場合は、制御は RETURN ステートメントの終わりに移されます。

END-RETURN 句

この明示的範囲終了符号は、RETURN ステートメントの範囲を区切るために使用されます。 END-RETURN 句を使用することによって、 条件的な RETURN ステートメントを他の条件ステートメントの中にネストすることができます。 END-RETURN 句は、命令の RETURN ステートメントと共に使用することもできます。

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


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

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