COBOLのPERFORM文をマスターしよう!初心者でもできる繰り返し処理の基本
生徒
「COBOLで同じ処理を何回も使いたいとき、どうすればいいですか?」
先生
「そういうときは、PERFORM文を使うと便利ですよ!」
生徒
「PERFORM文って何ですか?どうやって使うんですか?」
先生
「それでは、PERFORM文の基本的な使い方を分かりやすく解説しましょう!」
1. PERFORM文とは?
COBOL(コボル)のPERFORM文とは、あらかじめ定義しておいた一連の処理(処理のかたまり)を呼び出して実行するための文(ぶん)です。簡単に言うと、「あとで何回も使いたい処理をまとめて名前をつけておき、必要なときに呼び出す」という仕組みです。
これにより、同じような処理を何度も書かなくてもよくなり、プログラムがスッキリ見やすくなります。
たとえば、お料理のレシピで「ご飯を炊く」という手順を毎回書くのではなく、「ご飯を炊く」というタイトルだけ書いて中身は一度だけ説明する、というようなイメージです。
2. PERFORM文の基本構文(文の形)
基本の形はとてもシンプルです。以下のように書きます。
PERFORM ラベル名
ここで「ラベル名」とは、呼び出したい処理に名前をつけた部分のことです。ラベル名の後には、実行したい内容が書かれています。
3. PERFORM文の実例を見てみよう
では、実際のCOBOLプログラムを見てみましょう。今回は「挨拶(あいさつ)を表示する処理」をPERFORM文で呼び出してみます。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-PERFORM.
PROCEDURE DIVISION.
PERFORM GREETING
STOP RUN.
GREETING.
DISPLAY "こんにちは!COBOLのPERFORM文の練習です。"
DISPLAY "この処理はPERFORMで呼び出されました。"
.
このプログラムの説明:
PERFORM GREETINGで「GREETING」という処理を実行します。- GREETINGの中には
DISPLAY文が2つあり、画面に文字を表示します。 STOP RUNは、プログラムの終了を意味します。
このプログラムを実行すると、次のような結果になります:
こんにちは!COBOLのPERFORM文の練習です。
この処理はPERFORMで呼び出されました。
4. PERFORM文を使うメリットとは?
PERFORM文を使うことで、次のような良い点(メリット)があります。
- プログラムが見やすくなる: 同じ処理を何度も書かなくてよいので、スッキリします。
- エラーが減る: 1か所にまとめて書いておけば、修正がしやすくなります。
- 再利用ができる: 同じ処理を何度でも使いまわせます。
たとえば「エラーメッセージを表示する」「入力チェックをする」といった処理は、いろいろな場面で使うので、PERFORM文でまとめておくととても便利です。
5. PERFORM文と段落(だんらく)の関係
COBOLでは、処理のまとまりを「段落(paragraph)」と呼びます。この段落に名前をつけて、その名前をPERFORMで呼び出します。
段落は、英語の文のように、1つの名前(ラベル)に続けてピリオド . を書くことで定義します。たとえば:
HELLO-MESSAGE.
DISPLAY "こんにちは、これは段落の中の処理です。"
この段落を実行するには、次のように書きます:
PERFORM HELLO-MESSAGE
6. PERFORM文の注意点
PERFORM文を使うときに気をつけるべきポイントもあります。
- 段落の名前(ラベル)は重複させないようにしましょう。
- 処理が終わったら、次の文に自然に進むので、PERFORM文の中にSTOP RUNは入れないように注意。
- 段落の終わりにはピリオド(
.)を忘れずに!
7. PERFORM文を使った実践的な例
次は、2回PERFORM文を使って、同じ挨拶を2回表示する例です。
IDENTIFICATION DIVISION.
PROGRAM-ID. MULTI-GREETING.
PROCEDURE DIVISION.
PERFORM GREETING
PERFORM GREETING
STOP RUN.
GREETING.
DISPLAY "ようこそ!この処理は繰り返されています。"
.
ようこそ!この処理は繰り返されています。
ようこそ!この処理は繰り返されています。
このように、PERFORM文は何回でも呼び出すことができるので、使い方を覚えておくとプログラムを短く、分かりやすく書くことができます。
まとめ
COBOLのPERFORM文は、はじめて学ぶ人にとってとても重要な概念であり、繰り返し処理や共通処理の整理に欠かせない機能です。今回の記事では、段落を呼び出す基本的なPERFORM文の使い方や、繰り返し処理として複数回呼び出す方法、そして段落の構造や注意点まで幅広く確認してきました。とくに、PERFORM文が一つの処理を何度も再利用できるという特徴は、COBOLのプログラム全体の見通しをよくするうえで非常に役立ちます。複雑な業務ロジックを扱うことが多いCOBOLでは、処理のまとまりをはっきり区別しながら段落として整理し、それをPERFORM文で呼び出すという書き方がとても効果的です。
また、PERFORM文を使うメリットとして、処理の再利用性が高いことや、重複した記述を減らすことでエラーの発生を防げるという点がありました。実際の実務では、入力チェック処理、エラー処理、ログ出力処理、ヘッダ印字など、何度も必要になる共通処理が多数存在します。そうした処理を段落としてまとめ、PERFORM文で呼び出せるようにしておくことで、修正や調整にも強い構造になります。COBOLのプログラム設計では、読みやすく整った構造をつくることが非常に大切なので、PERFORM文の持つ役割はとても大きいといえます。
さらに、PERFORM文を正しく扱うためには、段落の定義方法と構造を理解しておくことが欠かせません。段落はラベル名に続けてピリオドを書くことで作られ、その下に実行する処理が記述されます。PERFORM文はその名前を呼び出すことで実行でき、処理が終わると自然に元の流れに戻ります。こうした動きははじめのうちは少しわかりにくいかもしれませんが、実際に手を動かしてみると理解がぐっと深まります。
PERFORM文を使うときの注意点として、段落名の重複を避けること、処理の中にSTOP RUNを入れないこと、段落の終わりには必ずピリオドをつけることなどがありました。特に段落の終端を示すピリオドは、COBOLでの構造を決める非常に重要な記号となるため、忘れないようにすることが大切です。どれも基本的なポイントですが、実際のプログラムでは意外と見落としがちな点なので、丁寧に確認しておくことが安全なコーディングの第一歩です。
ここでは、より理解を深めるために、実際にPERFORM文を使って複数回呼び出したり、条件分岐と組み合わせたりしたサンプルプログラムを見ていきましょう。今回の例は、入力された値に応じて段落を呼び出す練習もかねた実践的な内容になっています。COBOLの特徴である段落構造やPERFORM文の制御の流れを、実際の画面出力と照らし合わせながら読み進めることで、より確かな理解につながるはずです。
PERFORM文の動きを確認できるサンプルプログラム
下記のプログラムは、入力された数値に応じて挨拶を繰り返したり、別の段落を呼び出したりする例になっています。PERFORM文の基本的な動きだけでなく、条件分岐と組み合わせた実践的な形も確認できます。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-PERFORM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CNT PIC 9 VALUE 0.
PROCEDURE DIVISION.
MAIN-PROCESS.
DISPLAY "あいさつを3回表示します。".
PERFORM GREETING 3 TIMES.
DISPLAY "回数を入力してください(1~5):".
ACCEPT CNT.
IF CNT > 0
PERFORM GREETING CNT TIMES
END-IF.
DISPLAY "入力に応じた追加処理を行います。".
PERFORM CHECK-VALUE.
STOP RUN.
GREETING.
DISPLAY "こんにちは!PERFORM文を使ったあいさつです。".
.
CHECK-VALUE.
IF CNT = 0
DISPLAY "入力が0なので追加処理はありません。"
ELSE
DISPLAY "入力された値:" CNT
END-IF.
.
このプログラムのポイントは、PERFORM 3 TIMES や PERFORM CNT TIMES のように、回数指定のPERFORMを使っていることです。また、入力された値を別段落で確認するCHECK-VALUEの処理も、PERFORM文によって呼び出されています。段落を使い分けることで、画面出力や分岐の処理が整理され、読みやすく保守しやすい構造を保つことができます。こうした書き方は広くCOBOLの実務でも利用されており、長いプログラムでも迷わず読み進められるようになります。
PERFORM文は、複雑な繰り返し処理を扱うときにも役立ちます。例えば、ファイルを読み込んで1行ずつ処理する場合や、毎回必要なチェック処理を抜け漏れなく実行したい場合など、さまざまな業務処理に応用ができます。そのため、PERFORM文の理解はCOBOL学習の中でも特に重要であり、確実に身につけておくべき基本技術です。繰り返しや段落呼び出しの仕組みを身につけることで、COBOLのプログラム構造がより自然に理解でき、他の構文を学ぶ際にも大きな助けとなります。
生徒
「PERFORM文ってすごく便利ですね。段落を呼び出して整理するだけで、プログラムが読みやすくなるのがよく分かりました。」
先生
「そうだね。COBOLでは複雑な処理を扱うことも多いから、段落とPERFORM文の組み合わせがとても大切なんだよ。」
生徒
「回数を指定して繰り返し実行できるのも便利ですね。実際の業務でも使われる感じがします。」
先生
「その通り。繰り返しや共通処理はどんなプログラムでもよく使うから、PERFORM文を自然に使えるようになると一気に実力がつくよ。」
生徒
「段落の書き方も理解できてきました。少しずつ複雑な処理も書けそうです!」
先生
「いいね。これからも手を動かしながら練習していけば、COBOLのプログラムがもっと楽しくなるよ。」