条件判定で用いられる演算子 

 C言語の論理判定(if, while forの判定)は、『0が不正立』、『0以外を成立』する と判定します。  
 それに合わせて、以下の演算子は、条件が成立すれば 1 の演算結果になり、  不正立で、 0 の演算結果になります。
(処理順番は、優先順位と結合規則の表を参照ください。

関係演算子

条件判定表記 意味
左項 < 右項 左項が右項より小さい場合に1で、そうでなければ0の演算結果になります。
左項 <= 右項 左項が右項以下の場合に1で、そうでなければ0の演算結果になります。
左項 > 右項 左項が右項より大きい場合に1で、そうでなければ0の演算結果になります。
左項 >= 右項 左項が右項以上の場合に1で、そうでなければ0の演算結果になります。
左項 == 右項 左項が右項と等しい場合に1で、そうでなければ0の演算結果になります。
左項 != 右項 左項が右項と等しくない場合に1で、そうでなければ0の演算結果になります。

論理演算子

上記などの判定結果を、されらに利用して判定する以下の論理演算子があります。

条件判定表記 意味
条件 && 条件

左の条件が成立し、そして右の条件も成立するかの判定です。
左右の条件が共に成立した場合だけ、全体を成立と判定します。
(左右の条件の結果がが共に0以外であれば結果を1にします)

条件 || 条件

左の条件が成立するか、または右の条件が成立するかの判定です。
左右の条件のどちらかが成立すれば、全体を成立と判定します。
(左右の条件の結果がが共に0であれば結果を1にします)

  ! 条件

右の条件が成立しないなら、全体を成立と判定します。
(右の条件を反転して判断します。)

例えば、if( c >= 'a' && c <= 'z') { 〜の表現で、 変数cに記憶される内容が 'a' の文字コード以上で、 かつ(そして'z' の文字コード以下か?と判定しています。 つまり、cの内容がASCIIコードの 小文字かを判定していることになります。

例えば、if( ten < 50 || ten >= 75) { 〜の表現で、 変数tenに記憶される内容が 50 より小さいか、 または75 以上?と判定しています。 イメージで示すと、次の斜め範囲を示しています。



これは表現を変えると、50以上で(そして) 75未満という範囲でないか? と判定する次のイメージと同じことです。

この表現のコードは ! と && を使って if( ! ( ten >= 50 && ten < 75) { 〜 と書けるわけです。