GOBACK ステートメントは、EXIT PROGRAM ステートメントが呼び出されるプログラム の一部としてコーディングされている場合と同じように機能し (または EXIT METHOD ス テートメントが、呼び出されるメソッドの一部としてコーディングされている GOBACK の場合と同様)、さらに STOP RUN ステートメントが主プログラム内でコーディングされている場合と同様に機能します。
GOBACK ステートメントは、呼び出されるプログラムまたは呼び出されるメソッドの論理的終わりを指定します。
| フォーマット |
|---|
|
GOBACK ステートメントは、1 つの文の中の唯一のステートメント、または、 1 つの文の中の一連のステートメントの最後のステートメントとして現れなければなりません。 これは、GOBACK ステートメントの後にあるステートメントが実行されることがないからです。 GOBACK は、GLOBAL 句が指定されている宣言型プロシージャーの中で指定することはできません。
CALL ステートメントがアクティブであるときに、制御が GOBACK ステートメントに達すると、 EXIT PROGRAM ステートメントの場合と同じように、 呼び出し側プログラムまたは呼び出し側メソッド中の CALL ステートメントのすぐ後の点に制御が戻されます。
INVOKE ステートメントがアクティブであるときに、制御が GOBACK ステートメントに達すると、 EXIT METHOD ステートメントの場合と同じように、 呼び出し側プログラムまたは呼び出し側メソッド中の INVOKE ステートメントのすぐ後の点に制御が戻されます。
さらに、INITIAL 属性を持つ呼び出されたプログラム内で GOBACK ステートメントを実行することは、 そのプログラムを指定して CANCEL ステートメントを実行する場合と同じになります。
次の表は、 メインプログラムとサブプログラムで GOBACK ステートメントに対して取られる処置を示したものです。
| 終了ステートメント | メインプログラム | サブプログラム |
|---|---|---|
| GOBACK | 呼び出し側プログラムへ戻る。 (それがシステムの場合は、アプリケーションを終了する。) | 呼び出し側プログラムへ戻る。 |