COBOLのSTOP RUNとGOBACKの違いを徹底解説!初心者でも理解できる終了処理の基本
生徒
「COBOLでプログラムの最後に使うSTOP RUNってなんですか?」
先生
「STOP RUNは、COBOLプログラムの実行を完全に終了させる命令なんですよ。」
生徒
「じゃあ、GOBACKっていうのも見たことがあるんですが、それはSTOP RUNと何が違うんですか?」
先生
「それでは、STOP RUNとGOBACKの違いを初心者にもわかりやすく説明していきましょう!」
1. STOP RUNとは?COBOLでプログラムを終了させる基本命令
COBOLのSTOP RUN
文は、プログラムを完全に終了させるための命令です。
たとえば、ひとつのCOBOLプログラムを単独で実行しているとき、最後にこの命令を使うことで、そのプログラムの処理が終了します。
パソコンで言えば、「シャットダウンボタン」を押して電源を切るようなものです。処理が終わったら、そこでストップして、次の命令には進みません。
基本的な使い方はとてもシンプルです。
DISPLAY "プログラムを開始します。"
DISPLAY "処理を実行中です。"
STOP RUN
この例では、「プログラムを開始します。」→「処理を実行中です。」という表示のあと、STOP RUN
が実行されると、そこでプログラムの動きが終わります。
2. GOBACKとは?呼び出し元に戻るためのCOBOL命令
GOBACK
文は、STOP RUNに似ていますが、意味が少し違います。
GOBACKは、呼び出し元のプログラムに戻るための命令です。もしそのプログラムがほかのプログラムから呼び出されている場合、GOBACKを使うと元のプログラムに戻ります。
たとえば、「おつかいに行ってきて」と言われて用事が終わったあと、家に帰って報告するようなイメージです。
逆にSTOP RUN
を使ってしまうと、おつかいから戻らず、そのまま帰ってこないのと同じになります。
GOBACKの使用例は以下のとおりです。
DISPLAY "このプログラムは別のプログラムから呼ばれています。"
GOBACK
このコードでは、呼び出し元に戻って処理が続くのがポイントです。
STOP RUNではなくGOBACKを使うことで、「戻ってくることを前提にした流れ」が作れます。
3. STOP RUNとGOBACKの違いを初心者向けに簡単に説明
ここで、STOP RUNとGOBACKの違いを、初心者にもわかりやすく、表にまとめてみましょう。
命令 | 意味 | 例え | どんなとき使う? |
---|---|---|---|
STOP RUN |
プログラム全体の終了 | パソコンの電源を切る | 単体プログラムの終了時 |
GOBACK |
呼び出し元に戻る | おつかいから帰宅する | 呼び出されたプログラムから戻るとき |
このように、似ているようでまったく用途が異なる2つの命令です。
4. STOP RUNとGOBACKの使い分けを実際の例で体験
ここでは、STOP RUNとGOBACKの違いがよりはっきりわかるように、2つのプログラムを連携させて、使い分けの実例を見てみましょう。
プログラムA(メイン)からCALL
でプログラムB
を呼び出します。
▼ プログラムA(メイン)
CALL "PROGRAM-B"
DISPLAY "プログラムBから戻ってきました。"
STOP RUN
▼ プログラムB(サブ)
DISPLAY "プログラムBの処理を開始します。"
GOBACK
実行結果
プログラムBの処理を開始します。
プログラムBから戻ってきました。
このようにGOBACK
を使うことで、プログラムBの処理が終わったあとにプログラムAに戻って、処理が続いています。
一方で、もしプログラムBの最後をSTOP RUN
にしてしまうと、次のようになります。
▼ プログラムBの変更(STOP RUN版)
DISPLAY "プログラムBの処理を開始します。"
STOP RUN
実行結果
プログラムBの処理を開始します。
このように、プログラムAには戻らず、処理が強制終了してしまいます。呼び出し元の処理はスキップされるため、思った通りに動かない場合があります。
5. STOP RUNとGOBACKの選び方のコツ
COBOLを勉強している初心者の方にとって、STOP RUNとGOBACKの使い方は少し混乱するかもしれません。
でも大丈夫。次のように使い分けを覚えておきましょう。
- 単体で動くプログラムなら → STOP RUN
- 他のプログラムに呼ばれているなら → GOBACK
最初はわからなくても、何度もプログラムを書いていくうちに、自然と身についてきます。