IF-条件分岐(COBOL)を解説!複合条件についても解説します

IF条件分岐について解説

今回は条件分岐を行う場合について解説する。
COBOLではC言語やPythonと同様に、IF文を使用して条件分岐をすることができる。

IFの使い方

IF例

COBOLでは、以下のようにIF文を使用する。

IF 条件式A THEN
    条件式Aが真の時に実行する処理
END-IF.

これは、条件式Aが成り立つ場合に処理を実行する。

条件式Aが成り立たない場合の処理は以下のように記述する。真ではない時に、ELSE内の処理が実行されることとなります。

IF 条件式A THEN
    条件式Aが真の時に実行する処理
ELSE
    条件式Aが成り立たない時に実行する処理
END-IF.

複数の条件を使用する場合

COBOLで複数の条件を使用したい場合には、IF文を入れ子にして使用します。

IF 条件式A THEN
    条件式Aが真の時に実行する処理
ELSE IF 条件式B THEN
    条件式Bが真の時に実行する処理
ELSE IF 条件式C THEN
    条件式Cが真の時に実行する処理
ELSE
    条件式A,B,Cが成り立たない時に実行する処理
END-IF
END-IF
END-IF.

以上のように記載することで複数の条件を使用することができます。

複数の条件を使用する際には、最後の「END-IF」の数を「IF」の数と同じにしなければいけないことに注意。

複合条件(AND、OR)の使用方法

AND OR

複数の条件を使用する場合、上述したようにIFとELSEを使用することでも実現できるが、処理する内容が同じ場合には条件をまとめるといったことも効率化や可読性に一役買う。COBOLではANDやORを使用して、複合条件を作成することができる。

ORの使い方

ORは複数の条件を結合し、一つの条件が合致すれば全体の条件が合致したことになる。

IF 条件式A OR 条件式B THEN
    条件式Aか条件式Bが真の時に実行する処理
END-IF.

条件式Aと条件式Bの二つが真の場合も当然に全体の条件に合致したことになり、処理が実行される。
また、COBOLのORは、二つだけではなく、三つ以上のORをつなげることができる。

ANDの使い方

ANDは全ての条件が合致したときに、全体の条件に合致したことになる。

IF 条件式A AND 条件式B THEN
    条件式Aと条件式Bが真の時に実行する処理
END-IF.

全ての条件が合致しない時は当然、全体の条件も合致していないことになる。

COBOLで使える論理式

COBOLの条件式には以下の様々な論理式が使用できる。

演算子意味
=等しいA = B
NOT =等しくないA NOT = B
>より大きいA > B
NOT >より大きくないA NOT > B
<より小さいA < B
NOT <より小さくないA NOT < B
>=以上A >= B
<=以下A <= B
ANDかつA = B AND C = D
ORまたはA = B OR C = D
NOT否定NOT A = B
COBOLで使える条件式

英語の比較演算子

COBOLは事務の方にも使いやすい言語として作成されたため、英語も使用することができる。
上記で説明した論理式は、英語で書くと以下のようになる。ちなみに、「IS」と「THAN」は省略可能です。

演算子意味
IS EQUAL TO等しい
=
A IS EQUAL TO B
IS NOT EQUAL TO等しくない
NOT =
A IS NOT EQUAL TO B
IS GREATER THANより大きい
>
A IS GREATER THAN B
IS NOT GREATER THANより大きくない
NOT >
A IS NOT GREATER THAN B
IS LESS THANより小さい
<
A IS LESS THAN B
IS NOT LESS THANより小さくない
NOT <
A IS NOT LESS THAN B
IS GREATER THAN OR EQUAL TO以上
>=
A IS GREATER THAN OR EQUAL TO B
IS LESS THAN OR EQUAL TO以下
<=
A IS LESS THAN OR EQUAL TO B
英語の条件式

コメントを残す

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

CAPTCHA