1. Булева логика

В Java не можете да напишете израза 18 < age <65. Това е неправилен синтаксис и програмата няма да се компorра.

Но можете да го напишете така:

(18 < age) AND (age < 65)

Разбира се, instead of думата ANDще има логически оператор . Сега ще говорим за тях по-подробно.

В Java има три логически оператора: AND(&&), OR(||) и NOT(!).

Добрата новина е, че можете да използвате скоби , за да конструирате логически изрази с всяHowва сложност.

Лошата новина е, че разработчиците на Java решиха да използват нотация от езика C instead of andдумите orи not.

Погледнете екрана:

Логически оператор Очакване Реалност
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");
Ако стойността на възрастта е между 18и 65, тогава се показва фразата "Можете да работите".
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 и преместихме втората част от израза в нея. Освен това заменихме age <= 65с age > 65.

Тези три примера са еквивалентни. Само във втория пример преместихме част от израза от ifоператора в отделна булева променлива ( isYoung). В третия пример преместихме втората част от израза във втора променлива ( 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ако поне един член в израза е true. Ако и двете са false, тогава резултатът е false.

Операторът NOTе !, известен също като логически обратен .

Изразяване Резултат
!true
false
!false
true

Операторът се променя trueна falseи обратно.

Полезни изрази:

Изразяване Резултат
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b