A Nem operátor használata az if körülmények között Java-ban

1. Bemutatkozás

A Java if-else utasításaiban bizonyos műveletet hajthatunk végre, amikor egy kifejezés az igaz, és egy alternatíva, amikor van hamis. Ebben az oktatóanyagban megtudhatjuk, hogyan lehet a logikát megfordítani a nem operátor.

2. A ha-különben Statement

Kezdjük egy egyszerűvel ha más nyilatkozat:

logikai isValid = true; if (isValid) {System.out.println ("Érvényes"); } else {System.out.println ("Érvénytelen"); }

Mi van, ha programunknak csak a negatív esetet kell kezelnie? Hogyan írnánk át a fenti példát?

Az egyik lehetőség az, hogy egyszerűen eltávolítja a kódot a ha Blokk:

logikai isValid = true; if (isValid) {} ​​else {System.out.println ("Érvénytelen"); }

Azonban egy üres ha Úgy tűnik, hogy a blokk hiányos lehet, és csak a negatív feltétel kezelésének hosszú távú módjának tűnik. Ehelyett megpróbálhatnánk tesztelni, ha logikai kifejezésünk ezt értékeli hamis:

logikai isValid = true; if (isValid == false) {System.out.println ("Érvénytelen"); }

A fenti verzió viszonylag könnyen olvasható, bár nehezebb megtenni, ha a logikai kifejezés bonyolultabb lenne. A Java azonban kínál számunkra alternatívát a nem operátor:

logikai isValid = true; if (! isValid) {System.out.println ("Érvénytelen"); }

3. Az nem Operátor

A nem Az operátor logikai operátor, amelyet Java-ban a ! szimbólum. Ez egy unáris operátor, amely logikai értéket vesz operandumának. A nem operátor úgy működik, hogy megfordítja (vagy negálja) az operandus értékét.

3.1. A nem Operátor logikai értékre

Logikai értékre alkalmazva a nem kezelő megfordul igaz nak nek hamis és hamis nak nek igaz.

Például:

System.out.println (! True); // hamis nyomtat System.out.println (! false); // igazat nyomtat System.out.println (!! false); // hamisat nyomtat

3.2. A nem Boolean kifejezés operátora

Mivel nem unáriás operátor, amikor akarod nem Egy kifejezés kimenetelét zárójelben kell körbevennie hogy megkapja a helyes választ. Először a zárójelben lévő kifejezést értékelik, majd a nem üzemeltető megfordítja annak eredményét.

Például:

int szám = 2; System.out.println (! (Szám> 2)); // true értéket nyomtat ki System.out.println (! (count <= 2)); // hamisat nyomtat
logikai x = igaz; logikai y = hamis; System.out.println (! (X && y)); // true értéket nyomtat ki.out.println (! (x || y)); // hamisat nyomtat 

Meg kell jegyeznünk, hogy egy kifejezés tagadása esetén De Morgan törvényei lépnek életbe. Más szavakkal, a kifejezés minden tagját elutasítjuk, és az operátort megfordítjuk. Ez segíthet a nehezebben olvasható kifejezések egyszerűsítésében.

Például:

! (x && y) megegyezik a! x || -vel ! y! (x || y) megegyezik a! x &&! y! -val (a <3 && b == 10) megegyezik a> = 3 || b! = 10 

4. Néhány gyakori csapda

Használni a nem az operátor néha veszélyeztetheti kódunk olvashatóságát. A negatívumokat nehezebb megérteni, mint a pozitívakat. Nézzünk meg néhány példát.

4.1. Kettős negatívok

Mert a nem operátor tagadás operátor, negatív névvel rendelkező változókkal vagy függvényekkel történő használata nehezen olvasható kódot eredményezhet. Ez hasonló a természetes nyelvekhez, ahol a kettős negatívumokat gyakran nehéz megérteni.

Például:

if (product.isActive ()) {...}

jobban olvas, mint

if (! product.isNotActive ()) {...}

Bár API-nk nem biztos, hogy aktív módszerrel létrehozhatunk egyet az olvashatóság elősegítésére.

4.2. Komplex feltételek

A nem az operátor néha még nehezebbé teheti az amúgy is összetett kifejezést. Amikor ez megtörténik, egyszerűsíthetjük a kódot a feltétel megfordításával vagy a módszerek kibontásával. Nézzünk meg néhány példát azokra a feltételekre, amelyeket a nem operátor és hogyan tudjuk egyszerűsíteni őket a feltétel megfordításával:

if (! true) // Komplex if (hamis) // Egyszerűsítve if (! myDate.onOrAfter (anotherDate)) // Komplex if (myDate.before (anotherDate)) // Egyszerűsítve if (! (a> = b)) // Komplex, ha (a = 10 || összesen> = 1000)) // Komplex, ha (szám <10 && összesen <1000) // Egyszerűsítve

5. Következtetés

Ebben a cikkben megvitattuk a nem operátor és hogyan használható logikai értékekkel, kifejezésekkel és az ha más nyilatkozatok.

Megvizsgáltunk néhány gyakori buktatót is, amelyeket a kifejezések inverzbe írása és azok kijavításának oka okoz.

Mint mindig, a cikkben használt példák forráskódja elérhető a GitHubon.