論理値

  真,偽を表す論理値は,bool 型で表現され true ( 1 ),または,false ( 0 ) の値をとります.ただし,C/C++ においては,数値の 0 は false に,また,それ以外の数値は true とみなされ,整数と同じように,論理型同士の加減乗除が可能です.

  よく犯す誤りに以下のようなものがあります.例えば,x の値が 0 と 5 の間にあるか(つまり,数学的に書けば,0 < x < 5 )否かを調べたいとします.このとき,数学と全く同じように,
0 < x < 5		
と書いてしまう人を多く見受けます.この記述は文法的には正しいのですが,目的とする判断を行ってくれないという意味で誤りです.「演算子は,前から順番に実行される」ということを思い出してください.上のように記述すると,まず,「 0 < x 」の演算が行われます.次に,「その結果 < 5 」の演算が行われます.例えば,x の値が -1 である場合について考えてみます.「 0 < x 」の演算により結果は偽( 0 )になります.次に,「 0 < 5 」の演算が行われることになります.従って,最終的な結果は真になってしまいます.目的とする判断を行わせるためには,
(0 < x) && (x < 5)		
と記述してやる必要があります(カッコは必ずしも必要ない).