COBOLのDISPLAY文の使い方を完全ガイド!初心者でもわかる変数の出力確認方法
生徒
「COBOLのプログラムで変数に何が入っているかって、どうやって確認するんですか?」
先生
「それにはDISPLAY文を使います。これはとても簡単で、初心者でもすぐに使えますよ。」
生徒
「DISPLAY文って聞いたことあるけど、使い方がよく分からないです……」
先生
「では今回は、COBOLで変数を表示して中身を確認する方法を、丁寧に分かりやすく説明していきましょう!」
1. DISPLAY文とは?
DISPLAY文(ディスプレイ文)とは、COBOLで文字や変数の中身を画面に表示するための命令です。
COBOLのプログラムでは、変数にデータを入れて処理を進めますが、その中身を確認したいときにDISPLAY文を使います。
たとえば、「年齢はいくつですか?」「金額はいくらですか?」などの情報を、プログラムの中でチェックしたいときに役立ちます。
2. 変数とは何か?
変数(へんすう)とは、プログラム内で数字や文字などのデータを一時的に保存しておく入れ物のようなものです。
たとえば「年齢」や「名前」など、使うたびに変わる値を保存しておくために変数を使います。
COBOLでは、変数には名前がつけられていて、AGEやNAMEのように定義されます。
3. 変数の中身をDISPLAY文で出力する方法
変数をDISPLAY文で表示する方法はとても簡単です。次のように書くだけでOKです。
DISPLAY AGE
この例では、AGEという変数の中に入っている値がそのまま画面に表示されます。
たとえば、AGE に 25 が入っていた場合、次のように表示されます。
25
4. メッセージ付きで変数を表示する方法
単に数字だけを表示するのではなく、「年齢は:」のような文字を一緒に表示すると、結果が分かりやすくなります。
COBOLでは、次のように書くと文字と変数を一緒に表示できます。
DISPLAY "年齢は:" AGE
実行結果は次のようになります。
年齢は:25
文字列(「年齢は:」のような言葉)は"(ダブルクォーテーション)で囲んで書きます。
5. 複数の変数を一緒に表示する方法
COBOLのDISPLAY文では、複数の変数を続けて書くことで、一度にいろいろな情報を表示できます。
例を見てみましょう。
DISPLAY "名前:" NAME " 年齢:" AGE
この例では、NAMEに「田中」、AGEに「30」が入っていた場合、出力結果は次のようになります。
名前:田中 年齢:30
このように、文字と変数を組み合わせることで、画面に分かりやすい情報を表示できます。
6. 変数の値を表示してプログラムをチェックしよう
DISPLAY文は、プログラムが思った通りに動いているかを確認するためにも使えます。
たとえば、条件分岐が正しく動いているかどうかを確かめるために、次のように書きます。
IF AGE >= 20 THEN
DISPLAY "成人です。年齢:" AGE
ELSE
DISPLAY "未成年です。年齢:" AGE
END-IF
このように、DISPLAY文で変数の中身を表示することで、「どの条件が選ばれたのか」「変数の値が正しいか」をチェックできます。
7. よくある間違いと注意点
ここでは、初心者がやりがちなDISPLAY文の間違いを紹介します。
DISPLAY "AGE"
これは変数の中身ではなく、「AGE」という文字が表示されてしまいます。
DISPLAY AGE
DISPLAY"年齢は:"AGE
このようにスペースがないと、COBOLではエラーになる場合があります。コマンドと文字列や変数の間には、スペースを入れましょう。
8. DISPLAY文を使ったデバッグの基本
プログラムが長くなると、どこで問題が起きているか分かりにくくなります。
そんなときは、プログラムの途中途中にDISPLAY文を入れることで、処理の流れを追いかけられます。
たとえば、次のように書いてみましょう。
DISPLAY "1. 年齢チェック開始"
IF AGE >= 20 THEN
DISPLAY "2. 成人です"
ELSE
DISPLAY "2. 未成年です"
END-IF
DISPLAY "3. チェック終了"
このように、段階的にDISPLAYを使えば、プログラムの実行順序や、どこで止まったかが明確になります。
まとめ
COBOLのDISPLAY文は、とても素朴で単純な文に見えますが、変数の中身を確認したり、処理の流れを追いかけたりするときに欠かせない存在です。とくにプログラミングを学び始めたばかりの段階では、頭の中でイメージしている値と実際の値とのずれに気付きにくく、その結果として原因不明の不具合に悩まされることが少なくありません。そんなときに、画面に値をそのまま表示できるDISPLAY文をうまく使えるようになると、変数の内容や条件分岐の結果を目で確認しながら理解を深められるようになります。年齢や金額、コードやメッセージなど、業務で扱うさまざまな情報を、わかりやすい形で確認できることは、COBOLでの開発において非常に心強い武器になります。
記事の中では、単純に変数だけをDISPLAYする書き方から、メッセージと変数を組み合わせて表示する書き方、複数の変数を並べて表示する方法まで、段階的に確認しました。単に数値だけが並ぶ出力では、後から読み返したときに何の値なのかわからなくなってしまいますが、「名前」「年齢」「金額」といった説明となる文字列を前後に付けるだけで、画面を眺めるだけで状況が把握できるようになります。COBOLのDISPLAY文は、英数字と日本語のメッセージを素直に横に並べて書くだけで、その順番どおりに表示してくれるため、複雑な書式指定を覚える前の段階でも十分に役に立ちます。最初のうちは、少し大げさなくらい丁寧なメッセージを付けておくほうが、後から自分で読み返したときに理解しやすいでしょう。
また、DISPLAY文はただの表示用ではなく、プログラムの実行順序や条件分岐の結果を追いかけるための「しるし」としても活躍します。処理の途中に「ここを通りました」「判定の結果はこちらでした」といった表示を入れておくと、どのIF文が真になったのか、どの分岐が選ばれたのかを一目で確認できます。記事のなかで紹介したように、行番号やステップ名を付けてDISPLAYしておけば、実行結果のログをあとから見返したときにも、どの順番で処理が流れていったのかをたどりやすくなります。複雑なロジックや長いバッチ処理を扱うときほど、細かい場所に小さなDISPLAYを差し込んでおくことが、原因究明の近道になることがよくあります。
ただし、DISPLAY文を便利だからといって無制限に増やし続けてしまうと、出力が多すぎて肝心な情報が埋もれてしまうことがあります。そのため、どのタイミングで何を表示するのか、ある程度ルールを決めておくことも大切です。たとえば、「条件分岐の直前で比較に使う値を表示する」「ループの最初と最後だけを表示する」「エラーになりうる変数だけを重点的に表示する」といった方針を決めておくと、画面やログに並ぶ情報が整理され、後から読み返したときにも理解しやすくなります。重要度の高い箇所に絞ってDISPLAYを配置することで、プログラムが複雑になっても落ち着いて原因を追いかけられるようになります。
ここで、記事の内容をふまえた簡単なサンプルとして、DISPLAY文を使って年齢とメッセージを段階的に確認する例をまとめておきます。変数の定義から条件判定、メッセージ出力までの流れを通して眺めることで、DISPLAY文の使い方をもう一度整理してみましょう。
DISPLAY文を活用した確認用サンプルプログラム
IDENTIFICATION DIVISION.
PROGRAM-ID. DISP-REVIEW.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC X(20) VALUE "タナカタロウ".
01 USER-AGE PIC 9(3) VALUE 25.
PROCEDURE DIVISION.
DISPLAY "==== 確認開始 ===="
DISPLAY "名前:" USER-NAME
DISPLAY "年齢:" USER-AGE
IF USER-AGE >= 20
DISPLAY "判定:成人です。年齢:" USER-AGE
ELSE
DISPLAY "判定:未成年です。年齢:" USER-AGE
END-IF
DISPLAY "==== 確認終了 ===="
STOP RUN.
このサンプルでは、プログラムの冒頭で開始メッセージを表示し、そのあとで名前と年齢を個別に出力しています。そのうえで、IF文による条件分岐の結果をDISPLAYし、最後に終了メッセージを出しています。実行結果を上から順番に読むだけで、「どの値が使われて、どの条件が選ばれたのか」「全体の処理がどのような流れになっているのか」が自然と見えてきます。単純な構成のように見えますが、このような書き方を積み重ねていくことで、より複雑なプログラムでも安心してデバッグできるようになります。
実務でCOBOLのプログラムを保守するときには、すでに誰かが書いたDISPLAY文が多数並んでいるケースも多く見られます。そのようなとき、DISPLAY文の意味を読み解けるかどうかが、既存ロジックを理解するうえでの大きな助けになります。どこで値をセットし、どこで条件判定を行い、どのタイミングでメッセージが表示されるのかを追いかけることで、設計者が想定していた処理の流れをイメージしやすくなります。また、自分で新しくDISPLAY文を追加する場合も、既存の書き方に合わせてメッセージの形式や表現をそろえておくと、チーム全体でプログラムを読みやすく保つことにつながります。
さらに、DISPLAY文はテストデータと組み合わせることで、入力パターンごとの挙動を確認する際にも役立ちます。複数の年齢や金額、コード値を順番に流し込み、それぞれのケースでどのメッセージが表示されるかをまとめて確認すれば、仕様どおりの動きになっているかどうかを目視でチェックできます。最初のうちは、少し手作業が多く感じられるかもしれませんが、自分の目で結果を確かめながら学ぶ時間は、COBOLの基礎力を高めるうえでとても価値があります。慣れてくれば、どの場面でどのようなDISPLAYを入れておけば安心か、自然と感覚が身についてきます。
もちろん、最終的な本番運用では、不要になったDISPLAY文を削除したり、ログ専用の出力方法に切り替えたりすることもありますが、学習段階や試験環境では、遠慮なくDISPLAYを活用して問題ありません。プログラムの状態を細かく観察しながら、変数の中身、条件分岐の結果、処理の順番といった要素をひとつずつ確認していけば、COBOLの構文に対する理解も、業務ロジックに対する理解も着実に深まっていきます。DISPLAY文の操作に慣れておくことは、これから書いていくより高度なプログラムにとっても、確かな土台となってくれるはずです。
生徒
「きょうの内容を通して、DISPLAY文がただの表示用の命令じゃなくて、COBOLのプログラム全体を理解するための大事な道具なんだと感じました。今までは結果だけを見て原因を想像していましたが、途中の値を少しずつ表示していけば、どこでおかしくなっているのかを落ち着いて探せそうです。」
先生
「そうですね。変数の中身や条件分岐の結果を確認しながら進めることで、プログラムの流れが目に見える形になっていきます。DISPLAY文はとても素直な命令なので、慣れてくると『ここに一行入れれば原因がわかる』という感覚もつかめてきますよ。」
生徒
「メッセージと変数をいっしょに表示する書き方も印象に残りました。ただ数字が並ぶだけだと何の値かわからなくなりそうですが、『年齢』『金額』『判定結果』といった説明を付けておけば、あとからログを見たときにも迷わず読めそうです。自分で書くときも、そのあたりを意識してみようと思います。」
先生
「とても良い気付きですね。表示の工夫は、そのままプログラムの読みやすさにもつながります。今後、IF文やPERFORM、ファイル入出力など、ほかの構文を学んでいくときにも、要所要所でDISPLAYを使いながら動きを確かめると理解が深まりやすくなります。遠回りに見えるかもしれませんが、一つ一つ確かめる姿勢が大事ですよ。」
生徒
「はい、これからは動かしながら確認することを意識して練習してみます。わからなくなったら、今回のサンプルみたいにチェック用のDISPLAYを増やして、どこまで正常に動いているのかを確かめるようにします。少しずつでも、COBOLのプログラムを自分の力で読み解けるようになりたいです。」
先生
「その意欲があれば、必ず身についていきますよ。DISPLAY文はいつでも気軽に試せる味方なので、困ったときには何度でも助けてもらいましょう。いろいろなパターンを試していくうちに、COBOLの考え方にもきっと慣れていきます。一緒に少しずつ積み重ねていきましょう。」