COBOLのPERFORM … THROUGH文をやさしく解説!初心者でもわかる処理の繰り返しと範囲実行
生徒
「COBOLで、ある処理から別の処理まで一気に実行したいときってどう書けばいいんですか?」
先生
「それならPERFORM … THROUGHという命令を使えば簡単にできますよ。」
生徒
「1つずつ呼び出すのではなく、まとめて処理できるんですね!どう使うのか詳しく知りたいです!」
先生
「それでは、PERFORM … THROUGHの基本からやさしく説明していきましょう!」
1. PERFORM … THROUGH文とは?
COBOL(コボル)のPERFORM … THROUGH文とは、指定した段落(パラグラフ)の範囲をまとめて実行できる命令です。
簡単にいうと、「ここからここまでの処理を、まとめて順番に実行してください」とコンピューターに伝える命令です。
プログラムでは、処理のまとまりを「段落(パラグラフ)」という単位で書いていきます。段落は、段落名. から始まり、そこに命令が書かれている部分です。
この段落をひとつずつ実行するのではなく、複数の段落をまとめて実行するのがPERFORM … THROUGHです。
2. どんなときに使うの?
たとえば、処理を順番に一気に実行したいときや、毎回同じ一連の流れを実行したいときに便利です。
段落を1個ずつ呼び出す代わりに、始まりの段落から終わりの段落まで自動で実行されるので、プログラムがスッキリして見やすくなります。
「ボタンを押したら、データの確認・計算・表示を順番に行う」など、決まった流れがある処理によく使われます。
3. PERFORM … THROUGHの基本的な使い方
では、COBOLでのPERFORM … THROUGHの書き方を見てみましょう。
PROCEDURE DIVISION.
PERFORM START-PROCESS THROUGH END-PROCESS.
STOP RUN.
START-PROCESS.
DISPLAY "処理1:開始します。".
MIDDLE-PROCESS.
DISPLAY "処理2:中間の処理です。".
END-PROCESS.
DISPLAY "処理3:終了処理です。".
この例では、START-PROCESSからEND-PROCESSまで、3つの段落が順番に実行されます。
処理1:開始します。
処理2:中間の処理です。
処理3:終了処理です。
4. パラグラフ(段落)ってなに?
パラグラフとは、COBOLプログラムで使われる「処理のまとまり」のことです。
たとえば、手紙を書くときに「挨拶」「本文」「締めくくり」と順番があるように、プログラムにも処理の順番があります。
それぞれの処理をわかりやすくするために、段落名(START-PROCESSなど)をつけて、その中に命令を書いていくのがCOBOLの特徴です。
5. THROUGHとTHRUの違いは?
PERFORM … THROUGHとPERFORM … THRUは、実はどちらも同じ意味です。
THRUはTHROUGHの省略形で、COBOLではどちらも正しく使えます。
ただし、プログラムの見やすさや書き方のルールに応じて使い分けることが多いです。学校や職場でのルールに従いましょう。
6. 途中でエラーが起きたら?
PERFORM … THROUGHで実行する段落の中で、もし1つでも命令に問題があれば、そこでプログラムは止まってしまう可能性があります。
たとえば、計算できない数値や、読み込めないデータがあると、途中で止まってしまうかもしれません。
そのため、それぞれの段落は丁寧に作ることが大切です。
7. 書く順番に注意しよう
PERFORM A THROUGH Cと書いた場合は、段落AからCの順番通りに書かれている必要があります。
もし、Cの段落がAより前に書かれていたり、順番がバラバラだと、うまく実行されない可能性があります。
必ず、段落は上から下に並ぶように書きましょう。
8. PERFORM文と範囲指定の違いは?
通常のPERFORM 段落名は、1つの段落だけを実行します。
それに対して、PERFORM … THROUGHは、複数の段落を一気に実行できます。
処理が1個だけなら普通のPERFORM、複数の連続した処理ならPERFORM … THROUGHを使い分けると良いでしょう。
9. 実務でもよく使われる!
このPERFORM … THROUGHは、銀行や保険会社などのCOBOLシステムでもよく使われています。
同じ処理を何度も再利用できるため、大きなシステムでもスムーズに動かすことができます。
初心者のうちは、段落の範囲をしっかり決めて、順番に処理を並べることから始めましょう。
まとめ
COBOLのPERFORM … THROUGH文は、複数の処理をまとめて順番に実行できる非常に便利な命令です。特に処理の流れが明確に決まっている場面では、段落(パラグラフ)単位で実行範囲を指定できることで、プログラムの見通しが良くなり、保守性や再利用性も高まります。また、段落を使うことで処理を整理しやすくなり、チーム開発や大規模システムでも理解しやすい構造が作れます。
例えば、請求書の印刷処理において、「データ読み込み → 計算処理 → 印刷処理」といった一連の流れをPERFORM文で一括実行することにより、1つの命令で一連の業務ロジックが完結します。これは初心者にとっても理解しやすく、シンプルで効率的な記述方法です。THROUGH(またはTHRU)の語を使って範囲を指定する際は、段落の順番に注意し、前から後ろに向かって自然な並びになっていることが大前提です。
さらに、PERFORM … THROUGHはエラーが起きた際の処理制御や、複数箇所で同じ処理を繰り返し使いたい場合にも有効です。以下に、業務の中でよくある「ログ出力」「金額チェック」「結果出力」をまとめて呼び出すサンプルを記載します。
PROCEDURE DIVISION.
PERFORM LOG-START THROUGH LOG-END
STOP RUN.
LOG-START.
DISPLAY "ログ記録を開始します。".
CHECK-AMOUNT.
DISPLAY "金額チェックを行います。".
LOG-END.
DISPLAY "ログ記録を終了しました。".
上記のように、PERFORM文で範囲を指定することで、可読性が向上し、構造も整理されたコードになります。複雑な処理でも段落ごとに役割を分けることで、デバッグや保守も容易になります。
実務では、PERFORM … THROUGHをループ処理と組み合わせたり、条件分岐の内部で使ったりする応用も多く、COBOLプログラムの基礎から一歩進んだ活用ができます。そのため、段落の命名や並び順、途中のエラーハンドリング処理など、丁寧な設計が求められる場面も出てきます。
THRU表記とTHROUGH表記の違いは文法的には無いため、企業やプロジェクトのコーディング規約に従う形で書くのが望ましく、どちらかに統一することでコード全体の整合性を保てます。PERFORM文の種類や使い方をしっかり理解することは、COBOLプログラム全体の品質向上にも繋がります。
今後も複雑な業務処理をCOBOLで記述していくにあたって、PERFORM … THROUGHの書き方を正確に理解し、必要に応じて柔軟に使い分けられるスキルを身につけておくことが非常に大切です。
生徒
「PERFORM … THROUGH文って、思っていたより便利ですね!処理を一気にまとめて呼び出せるなんて、すごく効率的です。」
先生
「その通りです。段落を範囲で指定できることで、コードも読みやすくなりますし、再利用性も高くなります。」
生徒
「これなら、長い処理もスッキリまとめられそうです。あと、THROUGHとTHRUは同じ意味ってのも驚きでした!」
先生
「そうですね。あとは段落の順番に気をつければ、しっかり動作します。今後、いろんな場面で使ってみてください。」
生徒
「はい!段落ごとの役割を意識して、PERFORMを上手に使えるように練習します!」