COBOLは、他のプログラミング言語とは異なる特有の構文とスタイルを持ちますが、その明確で直感的な構造により、多くのエンタープライズアプリケーションで広く利用されています。この章では、COBOLの変数とデータタイプ、基本プログラム構造、そして制御構造について詳しく解説します。これにより、読者はCOBOLの基礎的な構文とプログラムの流れを理解し、シンプルなプログラムを作成できるようになります。
COBOLプログラムでは、変数やデータの管理が非常に重要です。COBOLの変数定義は他の言語と少し異なり、特定の構造に基づいて行われます。COBOLでは、データを「データ・ディビジョン」(DATA DIVISION)で定義し、「ワーキング・ストレージ・セクション」(WORKING-STORAGE SECTION)で変数を宣言します。変数のデータタイプは、COBOLのデータ項目定義に基づいて設定します。
COBOLでは、変数の階層構造をレベル番号で表現します。レベル番号とは、変数の階層関係を示す番号です。主に次のような番号が使用されます:
例として、銀行口座情報を格納する構造を定義してみましょう。
01 CUSTOMER-INFO.
05 CUSTOMER-ID PIC 9(5).
05 CUSTOMER-NAME PIC A(30).
05 CUSTOMER-BALANCE PIC 9(9)V99.
77 ACCOUNT-STATUS PIC X(1) VALUE 'A'.
ここでは、CUSTOMER-INFO
が01レベルのデータ項目であり、内部にCUSTOMER-ID
、CUSTOMER-NAME
、CUSTOMER-BALANCE
が含まれています。また、ACCOUNT-STATUS
は77レベルであり、単一のデータ項目です。
COBOLのデータ項目には、データタイプを定義するための「PICTURE句」(略してPIC句)を使用します。PICTURE句は、データのフォーマットや桁数を指定するもので、数値型や文字型のデータを表現できます。
PIC 9(5)
は5桁の数値データを示します。PIC 9(7)V99
は整数部分7桁、小数部分2桁の数値を表します。PIC X(10)
は10文字の文字列を表します。PIC A(20)
は20文字のアルファベット文字列を表します。例:
77 STUDENT-ID PIC 9(8) VALUE 12345678.
77 STUDENT-NAME PIC A(30) VALUE 'JOHN DOE'.
77 STUDENT-GPA PIC 9V99 VALUE 3.75.
COBOLの変数には、初期値を設定するために「VALUE句」を使用できます。VALUE句を用いると、変数が初期化される際の値を指定できます。
77 DEFAULT-CITY PIC X(20) VALUE 'TOKYO'.
77 INITIAL-AGE PIC 9(2) VALUE 25.
COBOLプログラムは、複数のセクションに分かれています。主に次の4つのディビジョン(DIVISION)から成り立ちます。
IDENTIFICATION DIVISIONは、COBOLプログラムの名前や作成者などの基本情報を記述するためのセクションです。このセクションは必須であり、プログラム名を指定します。
IDENTIFICATION DIVISION.
PROGRAM-ID. BANK-TRANSACTION.
AUTHOR. JANE DOE.
ENVIRONMENT DIVISIONは、プログラムがどのような環境で動作するかを設定するセクションです。ファイルの入力や出力の設定を行う際に使用します。
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUSTOMER-FILE ASSIGN TO 'customer.txt'.
DATA DIVISIONは、変数やファイルなどのデータを宣言するセクションです。このセクションの中で、WORKING-STORAGE SECTIONを使用して変数を定義します。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUSTOMER-ID PIC 9(5).
01 CUSTOMER-NAME PIC A(30).
PROCEDURE DIVISIONは、プログラムの実行手順を記述するセクションです。ここで、COBOLプログラムの主な処理内容を書きます。
PROCEDURE DIVISION.
DISPLAY 'ENTER CUSTOMER ID:'.
ACCEPT CUSTOMER-ID.
DISPLAY 'CUSTOMER ID IS:' CUSTOMER-ID.
STOP RUN.
COBOLには、プログラムの実行の流れを制御するためのさまざまな構文が用意されています。ここでは、条件分岐、ループ、ジャンプ構造について詳しく説明します。
COBOLでは、IF文を使用して条件分岐を行います。IF文を使うと、条件に基づいて異なる処理を行うことができます。
IF CUSTOMER-BALANCE > 0
DISPLAY 'POSITIVE BALANCE'.
ELSE
DISPLAY 'NEGATIVE OR ZERO BALANCE'.
END-IF.
PERFORM文を使用して、一定の回数や条件に基づいてループを行うことができます。
PERFORM TIMES 5
DISPLAY 'PROCESSING...'
END-PERFORM.
PERFORM UNTIL CUSTOMER-BALANCE > 1000
DISPLAY 'ADD BALANCE'
ADD 100 TO CUSTOMER-BALANCE
END-PERFORM.
COBOLでは、特定の処理に直接ジャンプするためにGO TO文を使用しますが、一般的には使用を避けることが推奨されています。プログラムの可読性が低下する可能性があるためです。
IF CUSTOMER-BALANCE < 0
GO TO ERROR-HANDLING.
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
どちらが自分に合っているか、よく考えて選ぶのが大事です。
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓