前提
最近COBOLを勉強し始めましたプログラミング初心者の事務職です。
COBOL PERFORM文の処理の流れについて3点、質問します。
実現したいこと
<< 実行例 >>を確認ください。
*PERFORM 入力処理. >1.
で入力処理を呼び出しまず。
入力ファイルの読み込みが終わったので、
終了フラグに 1 を代入しています。
質問①
この時点で 終了フラグ = '1' ですよね?
**質問② **
PERFORM UNTIL 終了フラグ = '1' >2.
終了フラグ = '1' になるまで>3.出力処理と>4.入力処理を繰り返せとのことですが、
既に>1.の時点で 終了フラグ = '1' なので
3.出力処理と>4.入力処理 へは行かずに、END-PERFORM. になりませんか?
質問③
PERFORM 入力処理 >4.
この>4.の処理は何のためにあるのですか?
既に PERFORM 入力処理. *>1. で入力ファイルの読み込みが終わって
終了フラグ = '1' を代入しています。
*>4.で再度 終了フラグ = '1' を代入する必要がありますか?
処理の流れが良くわからず、質問させていただきます。
COBOL
1 2 3<< 実行例 >> 4 主処理. 5 OPEN INPUT 入力ファイル 6 OUTPUT 出力ファイル. 7 PERFORM 入力処理. *>1. 8 PERFORM UNTIL 終了フラグ = '1' *>2. 9 PERFORM 出力処理 *>3. 10 PERFORM 入力処理 *>4. 11 END-PERFORM. 12 CLOSE 入力ファイル 13 出力ファイル. 14 STOP RUN. 15 入力処理 SECTION. 16 READ 入力ファイル 17 AT END MOVE '1' TO 終了フラグ *>5. 18 END-READ. 19 出力処理 SECTION. 20 MOVE 入力レコード TO 出力レコード. *>6. 21 WRITE 出力レコード. 22 231.入力処理を呼び出します。 242.うちPERFORMで3.,4.をファイル終了条件が成立するまで繰り返します。 253.出力処理を呼び出します。 264.入力処理を呼び出します。 275.入力処理を実行します。 286.出力処理を実行します。 29 30<< 実行例 ここまで >> 31
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー