STOP ステートメント

STOP ステートメントは、オブジェクト・プログラムの実行を一時的にまたは永続的に停止させます。

構文図を読む構文図をスキップする
STOP ステートメント - 形式

>>-STOP--+-RUN--+----------------------------------------------><
         '-リテラル-'   

リテラル
数字、非数字、またはブールにすることができ、また、ALL リテラル以外の表意定数にすることもできます。 リテラルが数字である場合は、符号なしの整数でなければなりません。
IBM Extension

浮動小数点リテラルにすることはできません。

End of IBM Extension

STOP リテラルを指定すると、そのリテラルが、バッチ・ジョブの場合にはシステム・オペレーターに、 対話式ジョブの場合にはワークステーションに知らされます。 プログラムの実行は中断されます。 プログラムの実行は、オペレーターが介入しなければ再開されません。

オペレーターの応答によって、取られる処置が決定されます。
   オペレーター
応答処置
   G (デフォルト)
次の命令から続行します。
   C
最も近い制御境界にあるプログラムまでのすべてのプログラムの実行を終了します。 最も近い制御境界がハード制御境界である場合には、COBOL 実行単位の呼び出し側にエスケープ・メッセージ CEE9901 が出されます。 バッチ・ジョブの場合、ジョブについての ENDSEV パラメーター (CRTJOBD CL コマンドを参照してください) にメッセージの重大度より小さい値が入っていると、ジョブが取り消されます。
   D
COBOL ID をダンプした後、C と同じ処置を実行します。
   F
COBOL ID およびファイル情報をダンプした後、C と同じ処置を実行します。

STOP リテラルの出力には、プログラム名が入ります。 リテラルは、2 次レベル・テキストに入れられ、ヘルプ・キーが使用された場合に表示されます。

STOP リテラル・ステートメントは、プログラムの実行中にオペレーターの介入が必要とされる場合に、 特別な状況 (特別なテープまたはディスクを取り付けなければならない場合や、 特定の日付コードを入力しなければならない場合など) で役立ちます。 ただし、オペレーターの介入が必要なときには、ACCEPT ステートメントおよび DISPLAY ステートメントを使用することをお勧めします。

STOP RUN を指定すると、 最も近い制御境界にあるプログラム (これも含む) までのすべてのプログラムが終了され、制御が制御境界の前のプログラムに戻されます。最も近い制御境界がハード制御境界である場合には、STOP RUN によって活動化グループ (実行単位) が終了され、 次に、活動化グループに範囲が限定されているすべてのファイルがクローズされます。 STOP RUN ステートメントを一連の命令ステートメントで指定する場合には、 その中の最後または唯一のステートメントにしなければなりません。

上記のどの場合も、呼び出し側プログラムはシステムである可能性があります。 その場合は、実行単位の実行が終了し、オペレーティング・システムに制御が 渡されます。

また、COBOL リンケージ規則に従わない言語で書かれたプログラムで主プログラムを呼び出すと、この呼び出し側プログラムに制御が戻ります。

各種条件における STOP RUN ステートメントの動作について詳しくは、「IBM Rational Development Studio for i: ILE COBOL プログラマーの手引き 」の『ILE COBOL プログラムからの戻り』を参照してください。

関連情報