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.