COBOL/EVALUATEステートメント


項目の値によって実行する命令(処理)が異なる場合に、分岐条件毎に命令を記述をする命令です。
 
【一般的な記述】
 
EVALUATE  項目名
WHEN  常数
命令
END-EVALUATE.
 
①項目名
分岐条件の基となる項目名を記述する。
この項目名の値によって実行する処理が異なる。
 
②WHEN 常数
項目名の値と比較する常数を記述する。
 
③命令
項目名の値と常数が同じ場合に実行する命令を1つ以上記述する。
 
④END-EVALUATE
EVALUATE命令の最後に記述する。
※②③の記述は、項目名の値に対応する分、記述する。
記述された常数の値以外の場合に実行する処理がある場合、最後にWHEN OTHERと記述する。
 
【使用例】
 
以下は、EVALUATE(条件分岐命令)を使用したプログラムの例です。
IF(条件分岐)で使用したプログラムと同じ条件の処理をEVALUATEを使用して記述します。
年号を数字で入力して、漢字で表示するプログラムです。
1:明治、2:大正、3:昭和、4:平成 とします。
 
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE06.
*EVALUATE(条件分岐)命令を使用した例
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01  WORK-AREA.
03  NENGOU     PIC 9(01).
03  NENGOU-KJ  PIC X(08).
PROCEDURE DIVISION.
MAIN.
DISPLAY “年号を入力してください”.
ACCEPT NENGOU.
EVALUATE  NENGOU
WHEN 1
MOVE “明治”  TO  NENGOU-KJ
WHEN 2
MOVE “大正”  TO  NENGOU-KJ
WHEN 3
MOVE “昭和”  TO  NENGOU-KJ
WHEN 4
MOVE “平成”  TO  NENGOU-KJ
WHEN OTHER
MOVE “該当なし”  TO  NENGOU-KJ
END-EVALUATE.
DISPLAY “年号は”  NENGOU-KJ “です。”.
STOP RUN.
 
【解説】
IFを使用したプログラムと比較してみてください。
 
EVALUATEを使用したプログラムのほうがシンプルでわかりやすいです。
 
1つの項目の値によって条件分岐をする場合は、IFよりもEVALUATEを使ったほうが良いです。
 
プログラムは、誰がみてもわかりやすく記述することが重要な要素です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です