カテゴリ: COBOL 更新日: 2026/01/18

COBOLのSTOP RUNとGOBACKの違いを徹底解説!初心者でも理解できる終了処理の基本

STOP RUNとGOBACKの違いを理解しよう
STOP RUNとGOBACKの違いを理解しよう

先生と生徒の会話形式で理解しよう

生徒

「COBOLでプログラムの最後に使うSTOP RUNってなんですか?」

先生

「STOP RUNは、COBOLプログラムの実行を完全に終了させる命令なんですよ。」

生徒

「じゃあ、GOBACKっていうのも見たことがあるんですが、それはSTOP RUNと何が違うんですか?」

先生

「それでは、STOP RUNとGOBACKの違いを初心者にもわかりやすく説明していきましょう!」

1. STOP RUNとは?COBOLでプログラムを終了させる基本命令

1. STOP RUNとは?COBOLでプログラムを終了させる基本命令
1. STOP RUNとは?COBOLでプログラムを終了させる基本命令

COBOLのSTOP RUN文は、プログラムを完全に終了させるための命令です。
たとえば、ひとつのCOBOLプログラムを単独で実行しているとき、最後にこの命令を使うことで、そのプログラムの処理が終了します。

パソコンで言えば、「シャットダウンボタン」を押して電源を切るようなものです。処理が終わったら、そこでストップして、次の命令には進みません。

基本的な使い方はとてもシンプルです。


DISPLAY "プログラムを開始します。"
DISPLAY "処理を実行中です。"
STOP RUN

この例では、「プログラムを開始します。」→「処理を実行中です。」という表示のあと、STOP RUNが実行されると、そこでプログラムの動きが終わります。

2. GOBACKとは?呼び出し元に戻るためのCOBOL命令

2. GOBACKとは?呼び出し元に戻るためのCOBOL命令
2. GOBACKとは?呼び出し元に戻るためのCOBOL命令

GOBACK文は、STOP RUNに似ていますが、意味が少し違います。

GOBACKは、呼び出し元のプログラムに戻るための命令です。もしそのプログラムがほかのプログラムから呼び出されている場合、GOBACKを使うと元のプログラムに戻ります。

たとえば、「おつかいに行ってきて」と言われて用事が終わったあと、家に帰って報告するようなイメージです。
逆にSTOP RUNを使ってしまうと、おつかいから戻らず、そのまま帰ってこないのと同じになります。

GOBACKの使用例は以下のとおりです。


DISPLAY "このプログラムは別のプログラムから呼ばれています。"
GOBACK

このコードでは、呼び出し元に戻って処理が続くのがポイントです。
STOP RUNではなくGOBACKを使うことで、「戻ってくることを前提にした流れ」が作れます。

3. STOP RUNとGOBACKの違いを初心者向けに簡単に説明

3. STOP RUNとGOBACKの違いを初心者向けに簡単に説明
3. STOP RUNとGOBACKの違いを初心者向けに簡単に説明

ここで、STOP RUNGOBACKの違いを、初心者にもわかりやすく、表にまとめてみましょう。

命令 意味 例え どんなとき使う?
STOP RUN プログラム全体の終了 パソコンの電源を切る 単体プログラムの終了時
GOBACK 呼び出し元に戻る おつかいから帰宅する 呼び出されたプログラムから戻るとき

このように、似ているようでまったく用途が異なる2つの命令です。

4. STOP RUNとGOBACKの使い分けを実際の例で体験

4. STOP RUNとGOBACKの使い分けを実際の例で体験
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の選び方のコツ

5. STOP RUNとGOBACKの選び方のコツ
5. STOP RUNとGOBACKの選び方のコツ

COBOLを勉強している初心者の方にとって、STOP RUNとGOBACKの使い方は少し混乱するかもしれません。

でも大丈夫。次のように使い分けを覚えておきましょう。

  • 単体で動くプログラムなら → STOP RUN
  • 他のプログラムに呼ばれているなら → GOBACK

最初はわからなくても、何度もプログラムを書いていくうちに、自然と身についてきます。

まとめ

まとめ
まとめ

COBOLでのプログラム終了処理は、一見単純そうに見えて、実は場面によって正しく使い分ける必要があります。特に、STOP RUNGOBACKの違いを理解することは、COBOLプログラムを正しく構築するうえでとても重要です。STOP RUNは文字通り、プログラムの実行を完全に終わらせる命令で、単体で動く処理にぴったりな方法です。一方、GOBACKは、呼び出し元に処理を戻すための命令で、複数のプログラムが連携して動くシステムにおいて大切な役割を果たします。

実務では、COBOLプログラムは単体で動くこともあれば、別のプログラムから呼び出されたり、他のサブルーチンを呼び出したりすることもあります。そのため、どちらを使うかの判断を誤ると、思わぬトラブルにつながる可能性があります。特に、GOBACKを使うべきところでSTOP RUNを使ってしまうと、呼び出し元に処理が戻らず、途中で実行が終わってしまい、大きな障害の原因になることもあります。

それぞれの命令には明確な特徴があります。STOP RUNは、プログラムを終了させて完全に制御を戻さないため、最後の処理としては安心して使えます。しかし、GOBACKは、処理が終わったあとも呼び出し元に戻り、続きの処理を行いたい場合に適しています。呼び出し関係があるかどうかをしっかり意識しておくことで、使い分けの判断がしやすくなります。

GOBACKとSTOP RUNを使った比較コード

次のサンプルは、GOBACKを使ってプログラムを呼び出し元へ返すパターンと、STOP RUNで処理を終了させてしまうパターンの違いを確認できる例です。


* プログラムA(メイン)
IDENTIFICATION DIVISION.
PROGRAM-ID. MAIN-PROG.
PROCEDURE DIVISION.
    DISPLAY "プログラムBを呼び出します。"
    CALL "SUB-PROG"
    DISPLAY "プログラムBから戻りました。"
    STOP RUN.

* プログラムB(サブ)
IDENTIFICATION DIVISION.
PROGRAM-ID. SUB-PROG.
PROCEDURE DIVISION.
    DISPLAY "サブプログラムの処理です。"
    GOBACK.

このように、GOBACKを使うことで、メインプログラムに処理が戻り、「プログラムBから戻りました。」という表示も行われます。STOP RUNに変えると、その表示はスキップされてしまいます。呼び出し元に戻る必要がある場合は、必ずGOBACKを使うようにしましょう。

こうした細かな違いが、COBOLのプログラムの安定性や信頼性を大きく左右します。初心者のうちはSTOP RUNばかりを使いがちですが、GOBACKの使いどころを覚えることで、より柔軟なプログラム設計ができるようになります。

先生と生徒の振り返り会話

生徒

「先生、STOP RUNとGOBACKって、どっちも終わる命令だと思ってました。でも違うんですね…!」

先生

「そうですね。STOP RUNはプログラムの完全終了、GOBACKは呼び出し元に戻る命令です。使い方を間違えると、想定通りに動かなくなってしまいますよ。」

生徒

「サブプログラムではGOBACKを使うようにすればいいんですね。もしSTOP RUNにしちゃうと、呼び出し元が無視されるんだ…」

先生

「その通りです。特に複数のプログラムを組み合わせるようなときは、GOBACKの役割がとても大切になります。」

生徒

「なんとなく書いていたけど、今度からは意識して使い分けできそうです!」

先生

「その調子です。小さな違いが大きな動作の差になるので、しっかり覚えておきましょうね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

COBOLのSTOP RUNとは何をする命令ですか?初心者向けに教えてください。

STOP RUNは、COBOLプログラムの実行を完全に終了させる命令です。単体で動作するCOBOLプログラムの最後に使われることが多く、「これ以上の処理はありません」という合図になります。
カテゴリの一覧へ
新着記事
New1
C#
C#のLINQでAny・Allなど条件確認メソッドの使い方を完全ガイド!初心者でもわかるデータ検証
New2
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New3
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New4
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.5
Java&Spring記事人気No5
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決