COBOLのEVALUATE TRUEの使い方を完全ガイド!初心者でもわかる条件分岐とパターンマッチ
生徒
「COBOLでいろんな条件をまとめてチェックする方法ってありますか?」
先生
「それなら、EVALUATE TRUEを使うと便利ですよ。複雑な条件分岐もすっきり書けるんです。」
生徒
「EVALUATE TRUEって聞いたことないです。どうやって使うんですか?」
先生
「では、EVALUATE TRUEの使い方と、パターンマッチングの方法をわかりやすく解説しましょう!」
1. EVALUATE TRUEとは?
EVALUATE TRUE(エバリュエート トゥルー)は、COBOLの条件分岐構文の一つです。複数の条件をIF文で書くと、何重にもネスト(入れ子)になってしまい、コードが読みにくくなります。
その問題を解決するのがEVALUATE TRUEです。「TRUE(真)」を基準にして、WHEN句で条件式を評価し、最初に一致したものだけを実行します。簡単に言えば、いくつものIF文をまとめてきれいに書ける方法です。
パソコンを触ったことがない初心者の方にも伝わりやすいように、「もし〜なら〜する」をいくつも書きたい時に使う、便利な書き方と覚えておきましょう。
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文との違いとメリット
同じことを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. パターンマッチングとは?
パターンマッチングとは、「ある値や条件に合っているかどうか」を確認する方法です。EVALUATE文では、このパターンマッチングを使って、複数の条件を一気に評価できます。
たとえば、成績によってメッセージを変えたいとき、次のように書けます。
EVALUATE TRUE
WHEN 成績 >= 90
DISPLAY "優秀です!"
WHEN 成績 >= 70
DISPLAY "よくできました。"
WHEN 成績 >= 50
DISPLAY "がんばりましょう。"
WHEN OTHER
DISPLAY "再テストが必要です。"
END-EVALUATE
このように、数値の範囲ごとに処理を分けるのも、パターンマッチングの一種です。難しそうに聞こえますが、「どのパターンに当てはまるか」を見るだけなので安心してください。
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. 実行結果のイメージ
たとえば、次のような値が入っていた場合にどう表示されるかを見てみましょう。
サンプル1: 年齢 = 70
あなたは高齢者です。
サンプル2: 成績 = 85
よくできました。
サンプル3: 学年 = 2, 成績 = 90
2年生で成績が良いですね!
7. EVALUATE TRUEの注意点とポイント
- 最初にマッチした条件だけが実行されるため、条件の順番がとても重要です。
- 必ずEND-EVALUATEで終わる必要があります。書き忘れに注意しましょう。
OTHER句は、すべてのWHENに当てはまらなかったときの処理を書く場所です。- 条件が重ならないように設計すると、予期せぬ動作を防げます。
- 初めての方は、紙に条件を図で書いてから、コードにするとわかりやすくなります。