Gebruik van de Not Operator in If-voorwaarden in Java

1. Inleiding

In Java's if-else-verklaringen kunnen we een bepaalde actie ondernemen wanneer een uitdrukking dat is waar, en een alternatief wanneer het is false. In deze zelfstudie leren we hoe u de logica omkeert met behulp van de niet operator.

2. Het als-anders Sverklaring

Laten we beginnen met een simpele als-anders uitspraak:

boolean isValid = true; if (isValid) {System.out.println ("Geldig"); } else {System.out.println ("Ongeldig"); }

Wat als ons programma alleen het negatieve geval hoeft af te handelen? Hoe zouden we het bovenstaande voorbeeld herschrijven?

Een optie is om simpelweg de code in het als blok:

boolean isValid = true; if (isValid) {} ‚Äč‚Äčelse {System.out.println ("Ongeldig"); }

Echter, een leeg als block ziet eruit alsof het misschien onvolledige code is, en het lijkt een langdradige manier om alleen de negatieve conditie aan te pakken. We kunnen in plaats daarvan proberen te testen of onze logische uitdrukking evalueert naar false:

boolean isValid = true; if (isValid == false) {System.out.println ("Ongeldig"); }

De bovenstaande versie is relatief gemakkelijk te lezen, hoewel het misschien moeilijker zou zijn als de logische uitdrukking complexer was. Java heeft echter een alternatief voor ons in de vorm van de niet operator:

boolean isValid = true; if (! isValid) {System.out.println ("Ongeldig"); }

3. Het niet Operator

De niet operator is een logische operator, in Java vertegenwoordigd door de ! symbool. Het is een unaire operator die een booleaanse waarde als operand heeft. De niet operator werkt door de waarde van zijn operand om te keren (of te negeren).

3.1. Het toepassen van de niet Operator naar een Booleaanse waarde

Wanneer toegepast op een booleaanse waarde, wordt de niet operator draait zich om waar naar false en false naar waar.

Bijvoorbeeld:

System.out.println (! True); // drukt false af System.out.println (! false); // drukt true af System.out.println (!! false); // drukt false af

3.2. Het toepassen van de niet Operator naar een Booleaanse expressie

Sinds niet is een unaire operator, wanneer je wilt niet de uitkomst van een uitdrukking, moet u die uitdrukking tussen haakjes plaatsen om het juiste antwoord te krijgen. De uitdrukking tussen haakjes wordt eerst geëvalueerd en vervolgens de niet operator keert de uitkomst om.

Bijvoorbeeld:

int count = 2; System.out.println (! (Count> 2)); // drukt echte System.out.println af (! (count <= 2)); // drukt false af
boolean x = waar; boolean y = false; System.out.println (! (X && y)); // drukt echte System.out.println (! (x || y)) af; // drukt false af 

We moeten opmerken dat wanneer een uitdrukking wordt ontkend, de wetten van De Morgan een rol gaan spelen. Met andere woorden, elke term in de uitdrukking wordt genegeerd en de operator wordt omgekeerd. Dit kan ons helpen om moeilijker te lezen uitdrukkingen te vereenvoudigen.

Bijvoorbeeld:

! (x && y) is hetzelfde als! x || ! y! (x || y) is hetzelfde als! x &&! y! (a <3 && b == 10) is hetzelfde als a> = 3 || b! = 10 

4. Enkele veelvoorkomende valkuilen

De ... gebruiken niet operator kan soms de leesbaarheid van onze code in gevaar brengen. Negatieven kunnen moeilijker te begrijpen zijn dan positieve punten. Laten we eens kijken naar enkele voorbeelden.

4.1. Dubbele minpunten

Omdat de niet operator is een ontkenningsoperator, het gebruik ervan met variabelen of functies die een negatieve naam hebben, kan resulteren in moeilijk te lezen code. Dit is vergelijkbaar met natuurlijke talen, waar dubbele negatieven vaak als moeilijk te begrijpen worden beschouwd.

Bijvoorbeeld:

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

leest beter dan

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

Hoewel onze API mogelijk geen is actief methode, kunnen we er een maken om de leesbaarheid te bevorderen.

4.2. Complexe voorwaarden

De niet operator kan een toch al complexe uitdrukking soms nog moeilijker leesbaar en begrijpelijk maken. Wanneer dit gebeurt, kunnen we de code vereenvoudigen door de voorwaarde om te keren of door methoden te extraheren. Laten we eens kijken naar enkele voorbeelden van condities die complex zijn gemaakt door de niet operator en hoe we ze kunnen vereenvoudigen door de voorwaarde om te keren:

if (! true) // Complex if (false) // Vereenvoudigd if (! myDate.onOrAfter (anotherDate)) // Complex if (myDate.before (anotherDate)) // Vereenvoudigd if (! (a> = b)) // Complex if (a = 10 || total> = 1000)) // Complex if (count <10 && totaal <1000) // Vereenvoudigd

5. Conclusie

In dit artikel hebben we de niet operator en hoe deze kan worden gebruikt met booleaanse waarden, uitdrukkingen en in als-anders verklaringen.

We hebben ook gekeken naar enkele veelvoorkomende valkuilen, veroorzaakt door het schrijven van uitdrukkingen in hun inverse en hoe deze te verhelpen.

Zoals altijd is de broncode voor de voorbeelden die in dit artikel worden gebruikt, beschikbaar op GitHub.