制御メカニズムのフローにおいて、制御は文が記述された順序で文から文に移行する。ただし、制御を明示的に移行してこの順序をオーバーライドする場合、または制御が移行する次の実行可能な文がない場合は例外とする。文から文への制御の移行は、手続き部で明示的な文を使用せずに行われるため、制御は暗黙移行される。
COBOL には、制御の暗黙移行メカニズムを明示的にも暗黙的にも変更する手段が用意されている。
制御の暗黙移行は、連続する文の間で行われるほか、手続き分岐文を実行せずに通常の制御の流れを変更する場合にも行われる。COBOL には、文から文への制御の流れをオーバーライドする暗黙的な制御フロー変更を行うために、次の方法が用意されている。
USE AFTER ERROR PROCEDURE ON file-name. IF status-key-1 >= 3 DISPLAY error-message UPON CONSOLE STOP RUN.
エラー メッセージの定義については、COBOL システムのドキュメントを参照。
制御の明示移行とは、手続き分岐文、編集文、または条件文を実行することで、制御の暗黙移行のメカニズムを変更することをいう。文の間の制御の明示移行は、手続き分岐文または条件文を実行することによってのみ行われる。完結文の間の制御の明示移行は、IF 文の NEXT SENTENCE 句または SEARCH 文を実行することによってのみ行われる。
手続き分岐文の ALTER 文を実行すると、直接的に制御の明示移行を引き起こすわけではないが、関連する GO TO 文を実行する際の制御の明示移行に影響が及ぶ。手続き分岐文の EXIT PROGRAM 文は、呼び出し先のプログラム内で実行されると、制御の明示移行を行う。
「次の実行完結文」(next executable sentence) という用語は、上記の規則に従って制御の暗黙移行先となる次の COBOL 完結文か、NEXT SENTENCE を実行した結果、制御の明示移行先となる次の COBOL 完結文を指すために用いる。次の実行完結文は、現在の完結文を終了させる分離符の終止符の直後の完結文である。下記のように次の実行完結文がない場合、次の実行可能な文は存在しない。
「次の実行文」(next executable statement) という用語は、上記の規則および手続き部内の各言語要素に関連する規則に従って制御の移行先となる次の COBOL 文を指すために用いる。
以下の場合には、次の実行文は存在しない。