1. ブール論理

Java では、式 を書くことはできません18 < age <65。これは構文が正しくないため、プログラムはコンパイルできません。

しかし、次のように書くこともできます。

(18 < age) AND (age < 65)

もちろん、単語 の代わりに論理演算子がANDあります。それらについてはこれから詳しく説明します。

ANDJava には、 (&&)、OR(||)、およびNOT(!)の 3 つの論理演算子があります。

幸いことに、括弧を使用すると、複雑な論理式を構築できます。

悪いニュースは、Java 開発者が、およびという単語の代わりにC 言語の表記法を使用することにしたことです。andornot

画面を見てください。

論理演算子 期待 現実
AND (∧) and &&
OR (∨) or ||
NOT ( ̄) not !

Java での論理演算子の使用例をいくつか示します。

表現 解釈 説明
(0 < a) && (a < 100)
(0 < a) and (a < 100)
(0 < a) AND (a < 100)
(!a) && (!b)
(not a) and (not b)
(NOT a) AND (NOT b)
!(!a || !b)
not((not a) or (not b))
NOT((NOT a) OR (NOT b))


2. 比較演算子とブール変数の使用例

論理式を記述できる場所であればどこでも、論理変数を記述できます。

例:

コード 説明
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
年齢の値が から までの場合1865「働けます」というフレーズが表示されます。
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
変数を作成しisYoung、式の最初の部分をその変数に移動しました。単にage >= 18に置き換えただけですage < 18
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
isOld 変数を作成し、式の 2 番目の部分をその変数に移動しました。さらに、age <= 65に置き換えましたage > 65

これら 3 つの例は同等です。2 番目の例でのみ、式の一部をifステートメントから別のブール変数 ( isYoung) に移動しました。3 番目の例では、式の 2 番目の部分を 2 番目の変数 ( isOld) に移動しました。



3. 論理演算

論理演算を簡単に見てみましょう。

演算子ANDは であり、接続詞&&としても知られています。

表現 結果
true && true
true
true && false
false
false && true
false
false && false
false

つまり、式の結果は、true式を構成する両方の値が である場合にのみ得られますtrue。それ以外の場合は、常に ですfalse

演算子ORは であり、論理和||とも呼ばれます。

表現 結果
true || true
true
true || false
true
false || true
true
false || false
false

つまり、true式内の少なくとも 1 つの項が である場合、式の結果は常に になりますtrue。両方が の場合false、結果は になりますfalse

演算子NOTは であり、論理逆関数!とも呼ばれます。

表現 結果
!true
false
!false
true

演算子がtrueに変わりfalse、またその逆も同様です。

便利な表現:

表現 結果
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b