制御の転送

手続き部では、明示的な制御の転送が存在せず、 次の実行可能ステートメントが存在するのであれば、プログラムの流れは、ステートメントが書かれた順番に従って次々と制御を転送していきます。 (以下の注を参照してください。) この通常のプログラムの流れが、暗黙の制御の転送です。

連続するステートメントの間での暗黙の制御の転送の他、プロシージャーの分岐ステートメントが実行されずに正規の流れが変更される場合にも暗黙の制御の転送が行われます。 以下の例は、ステートメントからステートメントへの制御の転送を無効にする、暗黙の制御の転送を示しています。
  • 別の COBOL ステートメントの制御下で実行される COBOL プロシージャーの最終ステートメントが実行されると、暗黙のうちに制御が転送されます。 (COBOL プロシージャーの実行を制御する COBOL ステートメントには、MERGE、PERFORM、SORT、および USE などがあります。)
  • SORT または MERGE ステートメントの実行中に、INPUT または OUTPUT のプロシージャーに暗黙のうちに制御が転送されます。
  • 宣言プロシージャーを実行させるような COBOL ステートメントの実行中、制御はそのプロシージャーに暗黙のうちに転送されます。
  • 宣言プロシージャーの実行が終了すると、制御はその実行の原因となったステートメントに関連した制御メカニズムに暗黙のうちに返されます。
  • プログラムに手続き部がないか、またはプログラムで非宣言のセクションのいずれかが呼び出されたとき、その呼び出し側プログラムは暗黙のうちに EXIT PROGRAM を出します。

COBOL はまた、プロシージャーの分岐または条件ステートメントの実行によって、明示的な制御の転送を行います。