COBOL2002 使用の手引 手引編


5.1.2 条件式

条件式の評価の流れを,幾つかの場合に分けて説明します。

条件式の文法規則については,マニュアル「COBOL2002 言語 標準仕様編」 「4.7.4 条件式(Conditional expressions)」を参照してください。

〈この項の構成〉

(1) 条件がすべてANDで連結されている場合

条件がすべてANDで連結されている条件式の評価の流れを次に示します。

図5‒1 条件1 AND 条件2 AND … 条件nの評価

[図データ]

この場合の条件式の例を次に示します。

(例)
IF A = 10 AND B = 20 AND C = 30
  THEN 
    DISPLAY '--- THEN ---'
  ELSE 
    DISPLAY '--- ELSE ---'
END-IF.

A=10かつB=20かつC=30のときだけTHENのDISPLAY文を実行します。一つでも条件が真とならない場合は,ELSEのDISPLAY文を実行します。

(2) 条件がすべてORで連結されている場合

条件がすべてORで連結されている条件式の評価の流れを次に示します。

図5‒2 条件1 OR 条件2 OR … 条件nの評価

[図データ]

この場合の条件式の例を次に示します。

(例)
IF A = 10 OR B = 20 OR C = 30
  THEN 
    DISPLAY '--- THEN ---'
  ELSE 
    DISPLAY '--- ELSE ---'
END-IF.

A=10,B=20,C=30のどれか一つでも条件が真ならばTHENのDISPLAY文を実行します。すべての条件が偽の場合にだけ,ELSEのDISPLAY文を実行します。

(3) 条件がORとANDで連結されている場合

条件がORとANDで連結されている条件式の評価の流れを次に示します。

図5‒3 条件1 OR 条件2 AND 条件3の評価

[図データ]

この場合の条件式の例を次に示します。

(例)
IF A = 10 OR B = 20 AND C = 30
  THEN
    DISPLAY '--- THEN ---'
  ELSE
    DISPLAY '--- ELSE ---'
END-IF.

A=10,またはB=20かつC=30のどちらか一つでも条件が真ならばTHENのDISPLAY文を実行します。すべての条件が偽の場合にだけ,ELSEのDISPLAY文を実行します。

(4) 条件が括弧で囲まれている場合

条件が括弧で囲まれている条件式の評価の流れを次に示します。

図5‒4 (条件1 OR NOT 条件2) AND 条件3 AND 条件4の評価

[図データ]

この場合の条件式の例を次に示します。

(例)
IF ( A = 10 OR NOT B = 20 ) AND C = 30 AND D = 40
  THEN
    DISPLAY '--- THEN ---'
  ELSE
    DISPLAY '--- ELSE ---'
END-IF.

括弧で囲まれている条件,C=30およびD=40がANDで連結されているので,これらの条件がすべて真ならば,条件式の真理値は真となります。どれか一つでも偽となれば,条件式の真理値は偽となります。

次に括弧内の条件について検証します。A=10とNOT B=20はORで連結されているので,どちらか一方の条件が真ならば,括弧内の条件は真となります。ここで,NOTは条件B=20の真理値を否定しているため,B=20が真ならばNOT B=20は偽,B=20が偽ならばNOT B=20は真となります。