Previous: 否定
Up: 論理演算
Next: 論理 or
Previous Page: 否定
Next Page: 論理 or
例3 if ( (a>0) && (b>0) ){ printf("a > 0 かつ b > 0 \n"); }この例では、「 a>0 かつ b>0 」の場合に条件が真となる。実は、今の場合 関係演算は && よりも優先度が高いので丸括弧はなくても問題ないが、前述 の理由で慣れるまでは、つけておいた方が良いであろう。
例4 a = 1; if ( a<0 && scanf("%d",a) ){ printf("おかしな例\n"); }論理 and や論理 or 演算では左の値が評価されてから、右の値を評価する。 ところが、論理 and では一つでも偽があれば全体の値も偽になるので、もし 左の値が偽であれば右の値の評価は必要ではない。そこでそのような場合は、 右の値を評価しないようになっている。今の例は少し変な例なのだが、a は 1 なので、左の a<0 は偽である。従って、右の scanf は実行されない点に 注意しよう。