RETURN 文

RETURN 文は、整列処理の最後の段階から整列済みのレコード、または併合処理中に併合済みのレコードを取得する。

一般形式


RETURN

構文規則

  1. file-name は、データ部内の整列併合ファイル記述項で記述するものとする。
  2. RETURN 文を使用できるのは、file-name を対象とする SORT 文または MERGE 文に関連付けた出力手続きの範囲内のみである。
  3. 入力ファイルのレコード記述に大きさの異なる論理レコードが含まれている場合は、INTO 指定をしてはならない。identifier に関連付けた記憶領域および file-name に関連付けたレコード領域には、同じ記憶領域を指定できない。
  4. OSVSVSC2MF identifier-1 には、浮動小数点数項目も使用できる。

一般規則

  1. 1 つのファイルの論理レコードが複数のレコード記述で記述されている場合、これらのレコードは自動的に同じ記憶領域を共有する。これは、領域を暗黙的に再定義することに等しい。現在のデータ レコードの範囲を超えるデータ項目の内容は、RETURN 文の実行終了時点では不定となる。
  2. RETURN 文を実行すると、file-name が参照するファイル内の次の既存のレコードを、file-name と関連付けたレコード領域内で利用できるようになる。このレコードの順序は、SORT 文または MERGE 文中でリストされたキーによって決まる。file-name が参照するファイルに次の論理レコードがない場合は、AT END 条件が発生し、AT END 指定の imperative-statement-1 に制御が移る。imperative-statement-1 で指定した各文の規則に従って、実行が継続される。その中で、制御を明示的に移す手続き分岐または条件文を実行した場合は、その文に関する規則に従って制御が移る。それ以外の場合は、imperative-statement-1 の実行の終了時に、制御が RETURN 文の末尾に移る。

    ANS85 NOT AT END が指定されている場合は無視される。

    AT END 条件が発生すると、RETURN 文の実行は失敗し、file-name に関連付けたレコード領域の内容は不定となる。AT END 指定内の imperative-statement-1 の実行後は、現在の出力手続きの一部として RETURN 文を実行することはできない。

  3. ANS85 RETURN 文の実行中に AT END 条件が発生せず、レコードを利用できるようになった後に、INTO 指定により暗黙の転記が行われると、制御が imperative-statement-2 (指定されている場合) に移る。それ以外の場合、制御は RETURN 文の末尾に移る。
  4. ANS85 END-RETURN 指定は、RETURN 文の範囲を区切る。
  5. RETURN 文で INTO を指定できるのは、以下のいずれかの条件に該当する場合である。
    • 整列併合ファイル記述項に属するレコード記述が 1 つだけである場合。
    • file-name に関連付けたすべての record-name、および identifier が参照するデータ項目が、集団項目または基本英数字項目を記述する場合。
  6. INTO を指定した RETURN 文の実行結果は、以下の規則を順番に適用することに等しい。
    1. INTO を指定せずに同じ内容の RETURN 文を実行する。
    2. 現在のレコードは、レコード領域から identifier で指定した領域に転記される。その際には、CORRESPONDING を指定しない MOVE 文に関する規則に従って処理される。現在のレコードのサイズは、RECORD 句に指定された規則によって決まる。ファイル記述項に RECORD IS VARYING 句が含まれる場合は、暗黙的に集団項目転記が行われる。暗黙の MOVE 文は、RETURN 文の実行が失敗した場合には実行されない。identifier-1 に関連付けた添え字付けは、レコードの読み取り後、データ項目に転記される直前に評価される。レコードは、レコード領域および identifier-1 が参照するデータ項目の両方で利用できる。