COBOL/IFステートメント


条件によって実行する命令が異なる場合に、判定条件を記述する命令です。
 
【一般的な記述】
 
IF  項目名1 【比較演算子】【項目名2・定数】
「THEN・ELSE」 命令
END-IF.
 
①項目名1
条件判定の基となる項目名を記述します。
 
②比較演算子
・=,EQUAL        :等しい条件を比較
・>,GRATER THAN  :項目名1が大きい条件を比較
・<,LESS THAN    :項目名1が小さい条件を比較
・>=,GRATER EQUAL:等しいか大きい条件を比較
・<=,LESS EQUAL  :等しいか小さい条件を比較
NOTを付けると反対の条件を比較(NOT = は、等しくない条件を比較)
 
③項目名2・定数
項目名1と比較する対象を項目名、又は、定数で記述します。
 
④THEN
条件を満足した場合、THEN以降に記述された命令が実行されます。
THENの記述は省略できますが、命令の記述は必須です。
 
⑤ELSE
条件を満足しない場合、ELSE以降に記述された命令が実行されます。
ELSEを記述する場合、命令の記述は必須です。
ELSEの記述は任意です。
 
⑥END-IF
END-IFの記述は任意です。(一般的には記述する傾向が強いです。)
 
【使用例】
 
以下は、IF(条件分岐命令)を使用したプログラムの例です。
年号を数字で入力して、漢字で表示するプログラムです。
1:明治、2:大正、3:昭和、4:平成 とします。
 
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE05.
*IF(条件判定)命令を使用した例
*
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.
IF  NENGOU = 1
THEN
MOVE “明治”  TO  NENGOU-KJ
ELSE
IF  NENGOU = 2
THEN
MOVE “大正”  TO  NENGOU-KJ
ELSE
IF  NENGOU = 3
THEN
MOVE “昭和”  TO  NENGOU-KJ
ELSE
IF  NENGOU = 4
THEN
MOVE “平成”  TO  NENGOU-KJ
ELSE
MOVE “該当なし”  TO  NENGOU-KJ
END-IF
END-IF
END-IF
END-IF.
DISPLAY “年号は”  NENGOU-KJ “です。”.
STOP RUN.
 

コメントを残す

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