論理演算子はブール変数を操作し、表 1 に示すように結果もブールになります。
オペレーター | 使用法 | 意味 | 説明する | 例 | 結果 |
---|---|---|---|---|---|
&& | a&b | との短絡 | ab がすべて true の場合、計算結果は true となり、それ以外の場合は false になります。 | 2>1&&3<4 | 真実 |
|| | a||b | 短絡または | ab がすべて false の場合、評価結果は false となり、それ以外の場合は true となります。 | 2<1||3>4 | 間違い |
! | !a | 論理否定 | a が true の場合、値は false になり、a が false の場合、値は true になります。 | !(2>4) | 真実 |
| | a|b | 論理的または | ab がすべて false の場合、計算結果は false、それ以外の場合は true | 1>2|3>5 | 間違い |
& | a&b | ロジックと | ab がすべて true の場合、計算結果は true、それ以外の場合は false | 1<2&3<5 | 真実 |
- && は & とは異なります。a が false の場合、b は評価されません (b の値に関係なく、結果は false になるため)。
- || は | とは異なります: a が true の場合、b は評価されません (b の値に関係なく結果が true になるため)。
注:短絡 and (&&) および短絡 or (||) は、効率を向上させるために最適化された計算方法を使用できます。実際のプログラミングでは、短絡と短絡、または短絡を優先してください。
結果がブール値となる変数または式は、論理演算子によって論理式に結合できます。論理演算子 &&、||、および !表 2 に従って論理演算を実行します。
a | b | a&&b | a||b | !a |
---|---|---|---|---|
true | true | true | true | false |
false | true | false | true | true |
true | false | false | true | false |
false | false | false | false | true |
論理演算子の優先順位は次のとおりです。演算レベルは最も高く、&& 演算は || 演算よりも上位です。 !演算子は算術演算子よりも優先順位が高くなりますが、&& および || 演算は関係演算子よりも優先順位が低くなります。結合方向は次のとおりです。論理 NOT (単項演算子) は右結合、論理 AND および論理 OR (二項演算子) は左結合です。
以下に、論理演算子を使用した例をいくつか示します。
x>0 && x<=100 // First line statement
y%4==0 || y%3==0 // Second line statement
!(x>y) // Third line statement
このうち、1行目の記述はxの値が0より大きく100以下であるかどうかを判定するもので、2つの条件が同時に満たされた場合にのみ結果が真となります。ステートメントの 2 行目は、y の値が 4 または 3 で割り切れるかどうかを判断するために使用され、条件のいずれかが true である限り、結果は true (true) になります。 3 行目のステートメントは、まず x と y を比較し、次に比較結果を反転します。つまり、x が y より大きい場合、結果は false (false)、それ以外の場合は true (true) になります。