5.2 条件記述
条件判定部分には以下のような記述ができます。
==,!=,>,< などの関係演算子
数値などの大小比較について以下のような演算子が利用できます。
演算子 | 意味 | 利用例 |
---|---|---|
== | 等しい | if (a==b) { ... } |
!= | 等しくない | if (a!=b) { ... } |
> | 左辺が大きい | if (a>b) { ... } |
>= | 左辺が等しいか大きい | if (a>=b) { ... } |
< | 左辺が小さい | if (a<b) { ... } |
<= | 左辺が等しいか小さい | if (a<=b) { ... } |
==, != を等値演算子、>, < などを関係演算子と呼んでいます。
これらより算術演算子のほうが優先度が高いため、
if(a < b-1) という記述は
if( a < (b-1) ) と同じとみなされます。
(左から順に処理されてまず a < b が先に処理されるようにはなりません。)
||, && などの論理演算子
複数の条件を並べて判定したい場合は以下のように書きます。
演算子 | 意味 | 利用例 |
---|---|---|
&& | AND (両方の条件が成立したら) | if (a==b && a<100) { ... } (aとb が等しく、かつ a が 100 未満なら真) |
|| | OR (どちらかの条件が成立したら) | if (a==b || a<100) { ... } (aとb が等いか、または a が 100 未満なら真) |
! | NOT (条件の反転) | if (! a==b) { ... } (aとb が等しくなければ真) |
&& や || を論理演算子と呼んでいます。否定の ! は否定演算子と呼ばれています。
これらは関係演算子よりさらに低い優先度が設定されているので、
if( a < b && c > d ) は
if( ( a < b ) && ( c > d ) ) として処理されます。
また、
if( a < b-1 && c + 2 > d -5 ) は
if( ( a < ( b-1 ) ) && ( ( c + 2 ) > ( d -5 ) ) として処理されます。
(なるべくバグを発生させない、プログラマの勘違いを誘発させないようにするために、暗黙の優先順位に依存した複雑な論理式を書くより、( ) を明示的に使ってわかりやすい記述を心がける方がよいでしょう。)