Bruke Ikke-operatøren i Hvis forhold i Java
1. Introduksjon
I Java's if-else-uttalelser kan vi ta en viss handling når et uttrykk er det ekte, og et alternativ når det er falsk. I denne opplæringen lærer vi om hvordan du kan reversere logikken ved hjelp av ikke operatør.
2. Den hvis ellers Statement
La oss starte med en enkel hvis-annet uttalelse:
boolsk isValid = true; hvis (isValid) {System.out.println ("Gyldig"); } annet {System.out.println ("Ugyldig"); }
Hva om programmet vårt bare trenger å håndtere den negative saken? Hvordan vil vi omskrive eksemplet ovenfor?
Et alternativ er å bare fjerne koden i hvis blokkere:
boolsk isValid = true; hvis (isValid) {} annet {System.out.println ("Ugyldig"); }
Imidlertid en tom hvis blokken ser ut som om den kan være ufullstendig kode, og virker som en langvarig måte å håndtere bare den negative tilstanden på. Vi kan i stedet prøve å teste om det logiske uttrykket vårt evalueres til falsk:
boolsk isValid = true; hvis (isValid == false) {System.out.println ("Ugyldig"); }
Ovennevnte versjon er relativt lett å lese, selv om det kan være vanskeligere å gjøre hvis det logiske uttrykket var mer komplekst. Java har imidlertid et alternativ for oss i form av ikke operatør:
boolsk isValid = true; hvis (! isValid) {System.out.println ("Ugyldig"); }
3. Den ikke Operatør
De ikke operator er en logisk operator, representert i Java av ! symbol. Det er en unarisk operatør som tar en boolsk verdi som sin operand. De ikke operatøren arbeider ved å invertere (eller negere) verdien av operand.
3.1. Bruke ikke Operatør til en boolsk verdi
Når den brukes til en boolsk verdi, blir ikke operatøren snur ekte til falsk og falsk til ekte.
For eksempel:
System.out.println (! True); // skriver ut falsk System.out.println (! false); // skriver ut ekte System.out.println (!! false); // skriver ut falske
3.2. Bruke ikke Operatør til et boolsk uttrykk
Siden ikke er en unarisk operatør, når du vil ikke resultatet av et uttrykk, må du omgi det uttrykket i parentes for å få riktig svar. Uttrykket i parentes evalueres først og deretter ikke operatøren vender utfallet.
For eksempel:
int-antall = 2; System.out.println (! (Count> 2)); // skriver ut ekte System.out.println (! (count <= 2)); // skriver ut falske
boolsk x = sann; boolsk y = usann; System.out.println (! (X && y)); // skriver ut ekte System.out.println (! (x || y)); // skriver ut falske
Vi bør merke oss at når De negerer et uttrykk, kommer De Morgans lover inn. Med andre ord blir hvert begrep i uttrykket negert, og operatøren blir reversert. Dette kan hjelpe oss med å forenkle uttrykk som er vanskeligere å lese.
For eksempel:
! (x && y) er det samme som! x || ! y! (x || y) er det samme som! x &&! y! (a <3 && b == 10) er det samme som a> = 3 || b! = 10
4. Noen vanlige fallgruver
Bruker ikke noen ganger kan operatøren kompromittere lesbarheten til koden vår. Negativer kan være vanskeligere å forstå enn positive. La oss se på noen eksempler.
4.1. Doble negativer
Fordi det ikke operator er en negasjonsoperator, og bruker den med variabler eller funksjoner som har et negativt navn, kan føre til vanskelig å lese kode. Dette ligner på naturlige språk, der dobbeltnegativer ofte blir ansett som vanskelige å forstå.
For eksempel:
hvis (product.isActive ()) {...}
leser bedre enn
hvis (! product.isNotActive ()) {...}
Mens API-en vår kanskje ikke gir en er aktiv metode, kan vi lage en for å hjelpe lesbarheten.
4.2. Komplekse forhold
De ikke operatøren kan noen ganger gjøre et allerede komplekst uttrykk enda vanskeligere å lese og forstå. Når dette skjer, kan vi forenkle koden ved å reversere tilstanden eller ved å trekke ut metoder. La oss se på noen eksempler på forhold gjort komplisert av ikke operatør og hvordan vi kan forenkle dem ved å reversere tilstanden:
if (! true) // Complex if (false) // Simplified if (! myDate.onOrAfter (anotherDate)) // Complex if (myDate.before (anotherDate)) // Forenklet hvis (! (a> = b)) // Complex if (a = 10 || total> = 1000)) // Complex if (count <10 && total <1000) // Simplified
5. Konklusjon
I denne artikkelen diskuterte vi ikke operatør og hvordan den kan brukes med boolske verdier, uttrykk og i hvis-annet uttalelser.
Vi så også på noen vanlige fallgruver, forårsaket av å skrive uttrykk omvendt og hvordan vi fikser dem.
Som alltid er kildekoden for eksemplene som brukes i denne artikkelen tilgjengelig på GitHub.