【COBOL】EVALUATE文での「何もしない」処理の実装方法

COBOLプログラミングにおいて、EVALUATE文は他のプログラミング言語のスイッチケースに似た機能を持っていますが、直接的な「何もしない」処理を行う構文はありません。ここでは、EVALUATE文内で特定の条件に対して何もアクションを起こさない方法を紹介します。

EVALUATE文の基本構造

COBOLでは、EVALUATE文は以下のような基本的な構造を持ちます。

EVALUATE 変数名
    WHEN 値1
        値1の処理
    WHEN 値2
        値2の処理
    WHEN 値3
        値3の処理
    WHEN OTHER
        何もしない(または処理を省略する)
END-EVALUATE.

「何もしない」処理の実装方法

特定の条件(例えば、WHEN OTHER)で「何もしない」ようにするには、次の方法があります。

  • 処理を省略する: 特定のWHEN条件に対する処理を記述しないことで、その条件にマッチした場合は何も行われません。
  • CONTINUE文の使用: CONTINUE文を使用することで、明示的に「何もしない」ことを示すことができます。例えば、以下のようになります。
EVALUATE 変数名
    WHEN 値1
        値1に対する処理
    WHEN 値2
        値2に対する処理
    WHEN OTHER
        CONTINUE
END-EVALUATE.

この例では、WHEN OTHERにマッチした場合、CONTINUE文により何も実行せずに次の処理に進みます。

実際の例

具体的な例として、次のようなプログラムが考えられます。

IDENTIFICATION DIVISION.
PROGRAM-ID. EvaluateExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 VARIABLE-1 PIC 9 VALUE 5.

PROCEDURE DIVISION.
    EVALUATE VARIABLE-1
        WHEN 1
            DISPLAY "一"
        WHEN 2
            DISPLAY "二"
        WHEN 3
            DISPLAY "三"
        WHEN OTHER
            CONTINUE
    END-EVALUATE.

    STOP RUN.

このプログラムでは、VARIABLE-1が1、2、3のいずれでもない場合、CONTINUE文により何も出力せずにプログラムが終了します。

まとめ

COBOLのEVALUATE文において「何もしない」処理を実現するには、WHEN OTHER条件で処理を省略するか、CONTINUE文を使用する方法があります。これにより、条件に応じた柔軟な制御が可能となります。