5.1.2 条件式
条件式の文法規則については,マニュアル「COBOL2002 言語 標準仕様編」 「4.7.4 条件式(Conditional expressions)」を参照してください。
(1) 条件がすべてANDで連結されている場合
条件がすべてANDで連結されている条件式の評価の流れを次に示します。
この場合の条件式の例を次に示します。
- (例)
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で連結されている条件式の評価の流れを次に示します。
この場合の条件式の例を次に示します。
- (例)
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で連結されている条件式の評価の流れを次に示します。
この場合の条件式の例を次に示します。
- (例)
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) 条件が括弧で囲まれている場合
条件が括弧で囲まれている条件式の評価の流れを次に示します。
この場合の条件式の例を次に示します。
- (例)
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は真となります。