COBOLのACCEPT文の使い方を完全解説!初心者でもわかる基本的な入力方法
生徒
「COBOLって、ユーザーが文字や数字を入力することってできるんですか?」
先生
「はい、COBOLではACCEPT文を使えば、キーボードから文字や数字などの入力ができますよ。」
生徒
「入力した内容を表示することもできるんですか?」
先生
「もちろんできますよ。それでは、ACCEPT文の基本的な使い方を一緒に見ていきましょう!」
1. ACCEPT文とは?
ACCEPT文(アクセプト文)は、COBOLのプログラムでユーザーからの入力を受け取る命令です。
パソコンのキーボードで入力された文字や数字などの情報を、COBOLのプログラムの中にある変数(へんすう)に入れることができます。
変数とは、情報を入れておく箱のようなものです。たとえば「名前」や「年齢」といった情報を箱に入れて使えるようにするイメージです。
2. ACCEPT文の書き方と流れ
ACCEPT文の基本的な構文(こうぶん:文法のルール)は、以下のようになります。
ACCEPT 変数名.
この変数名の部分には、事前に用意したデータ項目(データの箱)の名前を書きます。
ユーザーが入力した内容が、その箱(変数)に入るわけです。
3. ACCEPT文とDISPLAY文を組み合わせた例
それでは、ユーザーから名前を入力してもらい、その名前を画面に表示するプログラムを紹介します。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-USER.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC X(20).
PROCEDURE DIVISION.
DISPLAY "あなたの名前を入力してください:".
ACCEPT USER-NAME.
DISPLAY "こんにちは、" USER-NAME "さん!".
STOP RUN.
実行結果(例)
あなたの名前を入力してください:
(ユーザーが「結衣」と入力)
こんにちは、結衣さん!
このように、ユーザーが入力した内容を画面に表示することで、プログラムと人間がやり取りしているような動きを作ることができます。
4. ACCEPT文で使えるデータ型
COBOLでは、ACCEPT文で使えるデータ型(データの種類)として主に以下の2つがあります。
- PIC X(n):文字列(もじれつ)の入力に使います。文字列とは、名前や住所のように文字を組み合わせたものです。
- PIC 9(n):数字の入力に使います。年齢や金額など、数字を入力したいときに使います。
たとえば年齢を入力したい場合は、次のように書きます。
01 USER-AGE PIC 9(3).
5. ACCEPT文を使った年齢入力のサンプル
今度は、ユーザーに年齢を入力してもらい、それを表示する例を見てみましょう。
IDENTIFICATION DIVISION.
PROGRAM-ID. AGE-INPUT.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-AGE PIC 9(3).
PROCEDURE DIVISION.
DISPLAY "あなたの年齢を入力してください:".
ACCEPT USER-AGE.
DISPLAY "あなたの年齢は " USER-AGE " 歳ですね。".
STOP RUN.
実行結果(例)
あなたの年齢を入力してください:
(ユーザーが「25」と入力)
あなたの年齢は 25 歳ですね。
このように、数字の入力もとても簡単に受け取ることができます。
6. 注意点:桁数に気をつけよう
ACCEPT文でデータを受け取るときには、「変数に入る桁数」に注意が必要です。
たとえば、名前の変数がPIC X(10)のように10文字までしか入らない設定になっていると、11文字以上の名前を入力しても、最初の10文字しか受け取れません。
長い名前や特殊な文字が入力される可能性がある場合には、少し余裕を持った桁数で変数を定義するとよいでしょう。
7. ACCEPT文は画面入力の入り口
COBOLのACCEPT文は、初心者が最初に学ぶ「ユーザーからの入力」を扱うための基本中の基本です。
この文を使えるようになることで、ユーザーの名前や年齢など、外からのデータを使った動的なプログラムが作れるようになります。
たとえば、アンケートの入力フォームや、レジで金額を入力して計算するシステムなど、様々な場面で活用されています。
まとめ
COBOLのACCEPT文は、ひとことで言えば「キーボードで入力された情報を、プログラムの中に取り込むための入り口」です。画面にメッセージを表示してから、ユーザーが入力した名前や年齢を受け取り、そのまま表示したり、他の計算処理に使ったりできるので、初心者が最初に覚えるべきとても大切な文です。特に、DISPLAYとACCEPTを組み合わせることで、まるで会話をしているような入力処理ができるため、事務処理や会計処理などの現場ではよく使われています。名前や年齢、住所や金額などの入力を画面で受け付けたい場面では、必ずと言ってよいほど登場する文なので、しっかり覚えておきたいところです。
実際にプログラムを動かしてみると、DISPLAYで文章を見せてからACCEPTで入力を受け取る流れがとてもスムーズで、入力した文字がそのまま変数に入るという動きを体感できます。たとえば、名前なら「PIC X(n)」で文字列、数字なら「PIC 9(n)」で数値と、データの種類に合わせて使うことができます。ここを理解しておくと、入力チェックや桁数の管理にも役立ちます。もし「PIC X(10)」に11文字以上入力すると、先頭10文字だけが入るという動きになるため、業務で使う場合は余裕のある桁数を設定するなどの工夫も必要になります。この考え方は、実際のレジ画面や入力フォームでも同じで、使う人のことを考えたプログラム設計につながります。
そして、ACCEPT文は単に入力を受け取るだけではなく、複数の入力を順番に処理していくことにも使えます。名前を聞き、次に年齢を受け取り、住所や金額などを続けて入力してもらうことで、ひとつのレコード(1人の情報)を完成させることもできます。バッチ処理や大量データを扱う場面でも、入力データを増やせば、画面を使った情報登録のプログラムにも発展させられます。このような仕組みを理解しておくと、実務で役立つ柔軟なプログラムを作れるようになります。
以下は、名前と年齢の両方を入力し、入力された文字と数字を使って自己紹介メッセージを表示するサンプルです。入力処理が2つ以上になると、より実践的な雰囲気が分かりやすくなるはずです。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC X(20).
01 USER-AGE PIC 9(3).
PROCEDURE DIVISION.
DISPLAY "おなまえを入力してください:".
ACCEPT USER-NAME.
DISPLAY "ねんれいを入力してください:".
ACCEPT USER-AGE.
DISPLAY "こんにちは、" USER-NAME "さん(" USER-AGE "さい)".
STOP RUN.
上のサンプルのように、複数の入力を組み合わせれば、簡単なアンケートや会員登録画面のような動きを作ることもできます。入力された情報は変数に残っているため、その後に計算を行ったり、別のメッセージを出したり、条件分岐で異なる動きをさせることもできます。たとえば、年齢の数字を使って未成年かどうかを判定したり、決まった年齢以上の人にだけ追加のメッセージを出すこともできます。そうした発展的な応用の第一歩となるのがACCEPT文です。
もし間違った入力が来た場合には、再入力を求める処理をつけることもできます。これは、初心者が次に挑戦しやすい技術としてとても大切で、間違いを許容しながら正しいデータだけを扱う安全なプログラム作りにつながります。決まった桁数でしか受け取れない場面も多いため、入力値を確認するIF文と組み合わせることで、より信頼できる動作になるでしょう。
そして、大きな特徴として、ACCEPT文はCOBOLの「対話的な処理」に欠かせません。昔から金融機関や自治体の端末、病院の受付システムなどで活用されてきた理由は、この「人が入力した値を正確に扱う力」が強いからです。名前や数字を扱う場面はどの業務でも必ず存在するため、ここで学んだ考え方をしっかり覚えておくと、後のステップで必ず役に立ちます。
まとめると、ACCEPT文は入力処理の基本であり、DISPLAYと組み合わせて画面のやり取りをつくることができ、データ型を意識して使うことで実務的な入力アプリケーションに発展します。COBOLの学習を進めるうえで欠かせない基礎なので、実際にサンプルを動かしながら慣れていくのが一番の近道です。これから入力チェックや条件分岐、計算処理などと合わせることで、より複雑なプログラムに挑戦できるようになります。
生徒
「ACCEPT文を使うと、名前や年齢を入力してもらえるのがよく分かりました!DISPLAYと組み合わせると、とても自然な感じになりますね。」
先生
「そうだね。文字列はPIC X、数字はPIC 9と覚えると、入力するデータに合わせて使い分けられるようになるよ。」
生徒
「たしかに、桁数のことも気をつけないといけませんね。PIC X(10)だと10文字までしか入らないっていうのも理解できました。」
先生
「入力フォームのような画面を作りたいときは、ACCEPT文を使えるかどうかが大きなポイントになるよ。使えるようになれば、登録処理や計算処理にも広げられるんだ。」
生徒
「次は、入力された数字を使って計算をしたり、条件分岐で動きを変えるプログラムにも挑戦してみたいです!」
先生
「もちろん!それができるようになれば、さらに実践的なCOBOLプログラムに近づくよ。今日学んだACCEPT文は、その第一歩だね。」