カテゴリ: COBOL 更新日: 2025/07/06

COBOLのOCCURS句とは?初心者でもわかる配列(テーブル)の定義方法

OCCURS句を使った配列(テーブル)の定義
OCCURS句を使った配列(テーブル)の定義

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLで同じ種類のデータをたくさん扱うにはどうすればいいですか?」

先生

「良いところに目をつけましたね。COBOLでは OCCURS句 を使って『配列』のようなデータ構造を定義できます。」

生徒

「配列ってなんですか?初めて聞きました。」

先生

「配列とは、同じ形をした箱を横にズラッと並べたイメージです。たとえば、10人分の名前や点数を扱いたいときにとても便利なんですよ。それでは、COBOLのOCCURS句の使い方をわかりやすく解説していきましょう!」

1. OCCURS句とは?

1. OCCURS句とは?
1. OCCURS句とは?

OCCURS句(オカーズ句)は、COBOLで「同じ形式のデータを複数まとめて管理する」ための書き方です。配列(テーブル)とも呼ばれます。

たとえば、10人分のテストの点数をそれぞれ別々に変数を用意して書くと、大変で面倒ですよね。

でも、OCCURS句を使うと、同じ型のデータをまとめて定義できるので、次のようにコンパクトに表現できます。

2. 配列(テーブル)のイメージを図で理解しよう

2. 配列(テーブル)のイメージを図で理解しよう
2. 配列(テーブル)のイメージを図で理解しよう

まずは図でイメージしましょう。

例えば、生徒の点数を5人分保存する場合、以下のような「データの箱」をイメージします。

  • 点数(1)
  • 点数(2)
  • 点数(3)
  • 点数(4)
  • 点数(5)

このように、同じ形のデータを繰り返して管理したいときに、OCCURS句が役立ちます。

3. OCCURS句を使ったCOBOLの定義方法

3. OCCURS句を使ったCOBOLの定義方法
3. OCCURS句を使ったCOBOLの定義方法

実際のCOBOLコードを見てみましょう。


01  STUDENT-SCORES.
    05  SCORE   PIC 9(3) OCCURS 5 TIMES.

このように書くと、「SCORE」という名前のデータが5個まとめて定義されます。

PIC 9(3)は、「3桁の数字」を意味しています。

OCCURS 5 TIMESは、「5回繰り返す」、つまり5個のデータを持つという意味です。

4. データに値を入れて表示するサンプル

4. データに値を入れて表示するサンプル
4. データに値を入れて表示するサンプル

配列の使い方をより理解するために、簡単なサンプルプログラムを見てみましょう。


IDENTIFICATION DIVISION.
PROGRAM-ID. OCCURS-DEMO.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  STUDENT-SCORES.
    05  SCORE   PIC 9(3) OCCURS 5 TIMES.

01  I        PIC 9.

PROCEDURE DIVISION.
    MOVE 80 TO SCORE(1)
    MOVE 90 TO SCORE(2)
    MOVE 70 TO SCORE(3)
    MOVE 85 TO SCORE(4)
    MOVE 95 TO SCORE(5)

    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
        DISPLAY "生徒" I "の点数:" SCORE(I)
    END-PERFORM

    STOP RUN.

このプログラムでは、5人分の点数を「SCORE」という配列に格納し、それぞれを順番に表示しています。

5. 実行結果

5. 実行結果
5. 実行結果

上記のプログラムを実行すると、以下のような結果になります。


生徒1の点数:80
生徒2の点数:90
生徒3の点数:70
生徒4の点数:85
生徒5の点数:95

6. OCCURS句を使うと何が便利なの?

6. OCCURS句を使うと何が便利なの?
6. OCCURS句を使うと何が便利なの?

OCCURS句を使うことで、以下のようなメリットがあります:

  • 同じ種類のデータをまとめて扱える
  • 処理をPERFORMなどで繰り返せるのでコードがすっきり
  • たくさんの変数を個別に定義する必要がない

これにより、ミスも減り、プログラムの見通しがよくなります。

7. OCCURS句の注意点

7. OCCURS句の注意点
7. OCCURS句の注意点

OCCURS句を使うときは、いくつか注意点もあります。

  • OCCURSの中で別のOCCURSを使う「多次元配列」は複雑なので、まずは1次元配列から学びましょう。
  • 配列の番号は、1から始まります(0ではありません)。
  • 定義したサイズ(たとえば5)を超えてアクセスするとエラーになります。

8. 配列とループ処理(PERFORM)の組み合わせ

8. 配列とループ処理(PERFORM)の組み合わせ
8. 配列とループ処理(PERFORM)の組み合わせ

配列と相性がいいのが、PERFORM VARYINGです。

これは「繰り返し処理」をするための命令で、配列の各要素を1つずつ処理するのにぴったりです。

たとえば、5人分の点数を全部表示したいとき、さきほどのようにPERFORMと一緒に使えば、短くわかりやすいコードになります。

カテゴリの一覧へ
新着記事
COBOLの変数名の付け方を解説!初心者でもわかる命名規則とコツ
C#のbreakとcontinueの使い方!ループ制御の基本テクニック
COBOLのFILLERの使い方とは?未使用領域を上手に管理する基本テクニック
C#のforeach文の基本!配列やコレクションを簡単に繰り返し処理する方法
人気記事
No.1
Java&Spring記事人気No1
COBOLのDISPLAY文の使い方を完全ガイド!初心者でもわかる出力方法
No.2
Java&Spring記事人気No2
C#のwhile文の使い方!条件付きループを基礎から学ぼう
No.3
Java&Spring記事人気No3
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.4
Java&Spring記事人気No4
C#のfor文の基本!繰り返し処理をわかりやすく解説