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

COBOLのEVALUATE TRUEの使い方を完全ガイド!初心者でもわかる条件分岐とパターンマッチ

EVALUATE TRUEの活用法とパターンマッチング
EVALUATE TRUEの活用法とパターンマッチング

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

生徒

「COBOLでいろんな条件をまとめてチェックする方法ってありますか?」

先生

「それなら、EVALUATE TRUEを使うと便利ですよ。複雑な条件分岐もすっきり書けるんです。」

生徒

「EVALUATE TRUEって聞いたことないです。どうやって使うんですか?」

先生

「では、EVALUATE TRUEの使い方と、パターンマッチングの方法をわかりやすく解説しましょう!」

1. EVALUATE TRUEとは?

1. EVALUATE TRUEとは?
1. EVALUATE TRUEとは?

EVALUATE TRUE(エバリュエート トゥルー)は、COBOLの条件分岐構文の一つです。複数の条件をIF文で書くと、何重にもネスト(入れ子)になってしまい、コードが読みにくくなります。

その問題を解決するのがEVALUATE TRUEです。「TRUE(真)」を基準にして、WHEN句で条件式を評価し、最初に一致したものだけを実行します。簡単に言えば、いくつものIF文をまとめてきれいに書ける方法です。

パソコンを触ったことがない初心者の方にも伝わりやすいように、「もし〜なら〜する」をいくつも書きたい時に使う、便利な書き方と覚えておきましょう。

2. 基本的なEVALUATE TRUEの書き方

2. 基本的なEVALUATE TRUEの書き方
2. 基本的なEVALUATE TRUEの書き方

まずは、EVALUATE TRUEの基本構文を見てみましょう。


EVALUATE TRUE
    WHEN 年齢 >= 65
        DISPLAY "あなたは高齢者です。"
    WHEN 年齢 >= 20
        DISPLAY "あなたは成人です。"
    WHEN 年齢 >= 13
        DISPLAY "あなたは中高生です。"
    WHEN OTHER
        DISPLAY "あなたは子どもです。"
END-EVALUATE

EVALUATE TRUEと書くことで、次のWHENに書かれた条件を順番にチェックしていきます。そして、最初に一致した条件だけが実行されます。

OTHER(アザー)は、どれにも当てはまらなかったときに実行される「その他」の条件です。保険のような役割です。

3. IF文との違いとメリット

3. IF文との違いとメリット
3. IF文との違いとメリット

同じことをIF文で書くと、次のようにネストが深くなり、読みにくくなってしまいます。


IF 年齢 >= 65 THEN
    DISPLAY "あなたは高齢者です。"
ELSE
    IF 年齢 >= 20 THEN
        DISPLAY "あなたは成人です。"
    ELSE
        IF 年齢 >= 13 THEN
            DISPLAY "あなたは中高生です。"
        ELSE
            DISPLAY "あなたは子どもです。"
        END-IF
    END-IF
END-IF

このようにIFを何重にも重ねると、ミスもしやすくなります。

ですがEVALUATE TRUEなら、シンプルで読みやすいコードにできます。初心者の方でも理解しやすく、保守や修正も簡単です。

4. パターンマッチングとは?

4. パターンマッチングとは?
4. パターンマッチングとは?

パターンマッチングとは、「ある値や条件に合っているかどうか」を確認する方法です。EVALUATE文では、このパターンマッチングを使って、複数の条件を一気に評価できます。

たとえば、成績によってメッセージを変えたいとき、次のように書けます。


EVALUATE TRUE
    WHEN 成績 >= 90
        DISPLAY "優秀です!"
    WHEN 成績 >= 70
        DISPLAY "よくできました。"
    WHEN 成績 >= 50
        DISPLAY "がんばりましょう。"
    WHEN OTHER
        DISPLAY "再テストが必要です。"
END-EVALUATE

このように、数値の範囲ごとに処理を分けるのも、パターンマッチングの一種です。難しそうに聞こえますが、「どのパターンに当てはまるか」を見るだけなので安心してください。

5. 複数の条件を同時にチェックする

5. 複数の条件を同時にチェックする
5. 複数の条件を同時にチェックする

AND(アンド)OR(オア)を使うことで、2つ以上の条件を同時に確認できます。

たとえば、「学年が2年生で、かつ成績が80点以上」のような条件も次のように書けます。


EVALUATE TRUE
    WHEN 学年 = 2 AND 成績 >= 80
        DISPLAY "2年生で成績が良いですね!"
    WHEN 学年 = 3 AND 成績 < 60
        DISPLAY "3年生はもう少し頑張りましょう。"
    WHEN OTHER
        DISPLAY "該当なし"
END-EVALUATE

ここで使っているANDは、「両方の条件が当てはまる場合に実行する」という意味です。

逆に、どちらか一方でも当てはまればOKという場合は、ORを使います。

6. 実行結果のイメージ

6. 実行結果のイメージ
6. 実行結果のイメージ

たとえば、次のような値が入っていた場合にどう表示されるかを見てみましょう。

サンプル1: 年齢 = 70


あなたは高齢者です。

サンプル2: 成績 = 85


よくできました。

サンプル3: 学年 = 2, 成績 = 90


2年生で成績が良いですね!

7. EVALUATE TRUEの注意点とポイント

7. EVALUATE TRUEの注意点とポイント
7. EVALUATE TRUEの注意点とポイント
  • 最初にマッチした条件だけが実行されるため、条件の順番がとても重要です。
  • 必ずEND-EVALUATEで終わる必要があります。書き忘れに注意しましょう。
  • OTHER句は、すべてのWHENに当てはまらなかったときの処理を書く場所です。
  • 条件が重ならないように設計すると、予期せぬ動作を防げます。
  • 初めての方は、紙に条件を図で書いてから、コードにするとわかりやすくなります。
カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.7
Java&Spring記事人気No7
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド