論理演算子は、複数の条件を指定する時や、
真偽値の逆転処理を行う事ができます。
論理演算子には、&& || ! の3つがあります。
それぞれ次のような使い方ができます。
条件に合う場合は真、条件に合わない場合は偽を返します。
&&の使い方
例)数学のテストが80点以上で、
さらに国語のテストが80点以上なら真
( suugaku >= 80 && kokugo >= 80 )
||の使い方
例)数学のテストが80点以上、
もしくは国語のテストが80点以上なら真
( suugaku >= 80 || kokugo >= 80 )
スポンサーリンク
!の使い方
例)数学のテストが80点以上ではない場合は真。
( !(suugaku >= 80) )
記述例
int b;
b = 1;
( b ) // 真になる
( !b ) // bを逆転させるので、偽になる
// つまり、bが真だったら、偽
// bが偽だったら、真となる
論理演算子の優先度
複数の論理演算子が使われている場合は、
どれが先に実行されるかが重要になります。
そのため、どの演算子が優先的に
実行されるかを表す優先度があります。
優先度は、高い方から! && ||となります。
プログラム例
例)数学のテストが80点以上で、
国語のテストが80点以上の場合、
または
理科のテストが80点以上で、
社会のテストが80点以上の場合は真
( suugaku >= 80 && kokugo >= 80 || rika >= 80 && shakai >= 80)
例)数学のテストが80点以上の場合、
または
国語のテストが80点以上で、
理科のテストが80点以上の場合、
または
社会のテストが80点以上の場合は真
( suugaku >= 80 || kokugo >= 80 && rika >= 80 || shakai >= 80)
例)数学のテストが80点以上ではなく、
国語のテストが80点以上の場合、
または
理科のテストが80点以上の場合、
( !suugaku >= 80 && kokugo >= 80 || rika >= 80 )
優先度はありますが、
カッコ()を付ければその部分が最優先となります。
複数の値を判定する場合や、複雑な判定をする場合には、
カッコ()を付けるようにした方が良いと私は思います。