Java 論理演算子 (&&、||、および !)




 
 
論理演算子は、さまざまな演算の関係式を結合して複雑な論理式を構成し、プログラム内の式が真であるかどうかを判定し、その判定結果が真であるか偽であるかを判定します。

 

論理演算子はブール変数を操作し、表 1 に示すように結果もブールになります。

表 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) になります。

 

「 Java 論理演算子 (&&、||、および !)」についてわかりやすく解説!絶対に観るべきベスト2動画

【Javaポイント解説 #08】関係演算子・論理演算子【初心者向け】【さきコーチ】
【高評価98.3%】Javaプログラミング「演算子」が面白いほど分かる解説講座【未経験からエンジニア/プログラマー】【入門 #6】