COBOLのEVALUATE文の使い方を完全ガイド!初心者でもわかる多岐選択
先生と生徒の会話形式で理解しよう
生徒
「COBOLで複数の条件を分岐させたいとき、どう書いたらいいですか?」
先生
「そういうときは、EVALUATE文という構文を使います。これがCOBOLの多岐選択に役立ちます。」
生徒
「EVALUATE文って難しそう……」
先生
「大丈夫。わかりやすい例で、基本から丁寧に見ていきましょう!」
1. EVALUATE文とは?
EVALUATE(エバリュエート)文は、COBOLで「条件がAならこれ、Bならあれ」という多岐選択(たきせんたく)を簡単に書ける命令です。複数の条件を順番にチェックして、当てはまる処理にジャンプします。これは、プログラムを見やすく整理するのに役立ちます。
「選び取る」という意味の英単語EVALUATEは、その名の通り、条件を評価して使う文章です。
2. 基本の書き方
まずは、基本的なEVALUATE文の構造です。
EVALUATE 学年
WHEN 1
DISPLAY "1年生です。"
WHEN 2
DISPLAY "2年生です。"
WHEN OTHER
DISPLAY "それ以外の学年です。"
END-EVALUATE
EVALUATEのあとにチェックしたい変数を書き、WHENで条件を書きます。最後はEND-EVALUATEで終了します。OTHERは、どれにも当てはまらない場合の「それ以外」です。
3. 複数条件をまとめてチェック
EVALUATE文では、複数の条件をまとめて書くこともできます。
EVALUATE TRUE
WHEN 学年 = 1 AND 成績 >= 80
DISPLAY "1年生で成績が良いですね!"
WHEN 学年 = 2 AND 成績 < 60
DISPLAY "2年生で要注意です。"
WHEN OTHER
DISPLAY "その他のパターンです。"
END-EVALUATE
この場合、EVALUATE TRUEと書くことで、WHENそれぞれに複数の条件(ANDやOR)を使って判断します。
4. ネストせずにすっきり書けるメリット
たとえばif文で同じ処理を書くと、こうなります:
IF 学年 = 1 THEN
IF 成績 >= 80 THEN
DISPLAY "1年生で成績が良いですね!"
END-IF
END-IF
ネストが深くなると、読みづらくなりますが、EVALUATE文なら次のようにすっきり書けます。
EVALUATE TRUE
WHEN 学年 = 1 AND 成績 >= 80
DISPLAY "1年生で成績が良いですね!"
WHEN 学年 = 2 AND 成績 < 60
DISPLAY "2年生で要注意です。"
WHEN OTHER
DISPLAY "その他のパターンです。"
END-EVALUATE
5. 多岐条件とOTHERSの使い分け
WHEN句には複数の値を並べることもできます:
EVALUATE 成績
WHEN 80 THRU 89
DISPLAY "8割台です。"
WHEN 90 THRU 100
DISPLAY "90点以上!すごい!"
WHEN 0 THRU 59
DISPLAY "再テストになるかもしれません。"
WHEN OTHER
DISPLAY "成績が範囲外です。"
END-EVALUATE
THRUは「〜から〜まで(範囲)」を表すキーワードです。範囲を指定できるので、コードがすっきりします。
6. 実行結果のイメージ
たとえば学年=1かつ成績=85なら、次のように表示されます:
1年生で成績が良いですね!
学年=3なら「その他のパターンです。」と表示されます。
7. EVALUATE文の注意ポイント
END-EVALUATEを忘れず書く。WHENごとに処理をまとめるが、順番に評価される。OTHERやOTHERSはどれにも当たらないときの最後の受け口。- 複数条件は
ANDORを使い、範囲はTHRUを使う。 - 初心者には、まずは簡単なWHEN句から始めて、慣れてきたら複雑な条件に挑戦すると◎。