【COBOL】EVALUATE文で複雑な条件分岐を実装する

COBOLは、半世紀以上にわたり多くのビジネスシステムで活用されてきた強力なプログラミング言語です。その信頼性と堅牢さから、現代でも金融業界や公共インフラなど、さまざまな分野で使われ続けています。そんなCOBOLの中で、特に注目すべき機能の一つが「EVALUATE文」です。

このEVALUATE文は、複数の条件を簡潔に、そして明瞭に表現することができるため、複雑な条件分岐を必要とするケースにおいて非常に有用です。しかし、その効果的な使い方について理解しているプログラマーは案外少ないのも事実です。そこで今回の記事では、COBOLのEVALUATE文を詳しく解説し、それを用いた効果的な条件分岐の実装方法をご紹介します。

本記事を通じて、あなたのCOBOLプログラミングがより効率的で、よりパワフルになることを願っています。

COBOLのEVALUATE文とは

EVALUATE文は、COBOLにおける多方向条件分岐のための命令です。多くの他のプログラミング言語で利用されている switch または case 文に似ていますが、COBOL独自の特性を持っています。EVALUATE文を使用すると、複数の条件分岐を簡潔かつ直感的に表現することが可能になります。

EVALUATE文の基本的な構文

EVALUATE文の基本的な構文は以下のとおりです。

EVALUATE {boolean-expression | identifier-1 | literal-1} 
   WHEN {boolean-expression | identifier-2 | literal-2} 
      {imperative-statement}
   WHEN OTHER 
      {imperative-statement}
END-EVALUATE

この構文において、{} は選択可能な部分を示しています。評価対象の表現または値、条件となる値、その条件が真(一致)のときに実行されるステートメント(命令)を指定します。WHEN OTHERは上記のWHEN条件のいずれにも該当しない場合に実行する命令を定義します。

EVALUATE文の使用例

以下に、EVALUATE文の簡単な使用例を示します。

DATA DIVISION.
WORKING-STORAGE SECTION.
01 SALES-CATEGORY PIC 9 VALUE 2.

PROCEDURE DIVISION.
    EVALUATE SALES-CATEGORY
        WHEN 1
            DISPLAY "Category is electronics"
        WHEN 2
            DISPLAY "Category is furniture"
        WHEN 3
            DISPLAY "Category is clothing"
        WHEN OTHER
            DISPLAY "Category is unknown"
    END-EVALUATE.
    STOP RUN.

上記の例では、SALES-CATEGORY の値に応じて異なるメッセージを表示します。このようにEVALUATE文を用いると、IF文を連ねるよりも直感的で可読性の高い条件分岐を書くことが可能になります。

まとめ

EVALUATE文は、COBOLの強力な機能の一つであり、条件分岐を簡潔かつ効率的に実装することが可能です。複雑なシステムやビジネスロジックの実装には、EVALUATE文のような強力なツールが不可欠です。COBOLプログラミングのスキルアップに、ぜひ活用してみてください。