1. Logikai logika

Java nyelven nem írhatja be a kifejezést 18 < age <65. Ez hibás szintaxis, és a program nem fog nem fordítani.

De leírhatod így is:

(18 < age) AND (age < 65)

Természetesen a szó helyett egy logikai operátorAND lenne . Most részletesebben beszélünk róluk.

A Java-ban három logikai operátor található: AND(&&), OR(||) és NOT(!).

A jó hír az, hogy zárójelek segítségével bármilyen bonyolultságú logikai kifejezést készíthet.

A rossz hír az, hogy a Java fejlesztők úgy döntöttek, hogy a C nyelv jelölését használják a és anda szavak helyett .ornot

Nézze meg a képernyőt:

Logikai operátor Elvárás Valóság
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

Íme néhány példa a logikai operátorok használatára Java nyelven:

Kifejezés Értelmezés Magyarázat
(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. Példák összehasonlító operátorok és logikai változók használatára

Ahová logikai kifejezést írhat, ott logikai változót is írhat.

Példa:

Kód Magyarázat
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
Ha az életkor értéke 18és között van 65, akkor a „Munka lehet” kifejezés jelenik meg.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
Létrehoztunk egy isYoungváltozót, és áthelyeztük a kifejezés első részét. Egyszerűen lecseréltük age >= 18a -ra age < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
Létrehoztunk egy isOld változót, és áthelyeztük ebbe a kifejezés második részét. Ezenkívül lecseréltük age <= 65a -ra age > 65.

Ez a három példa egyenértékű. Csak a második példában helyeztük át a kifejezés egy részét az utasításból ifegy külön logikai változóba ( isYoung). A harmadik példában a kifejezés második részét áthelyeztük egy második változóba ( isOld).



3. Logikai aritmetika

Nézzük meg röviden a logikai műveleteket.

Az ANDoperátor &&, más néven konjunkció .

Kifejezés Eredmény
true && true
true
true && false
false
false && true
false
false && false
false

Más szóval, egy kifejezés eredménye truecsak akkor lesz, ha a kifejezést alkotó mindkét érték true. Különben mindig az false.

Az ORoperátor ||, más néven diszjunkció .

Kifejezés Eredmény
true || true
true
true || false
true
false || true
true
false || false
false

Más szóval, egy kifejezés eredménye mindig az, trueha a kifejezésben legalább egy tag true. Ha mindkettő igen false, akkor az eredmény: false.

Az NOToperátor !, más néven logikai inverz .

Kifejezés Eredmény
!true
false
!false
true

A kezelő átvált truea falsekövetkezőre és fordítva.

Hasznos kifejezések:

Kifejezés Eredmény
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b