Operatoren zijn symbolen die worden gebruikt om bewerkingen uit te voeren op waarden, variabelen of instructies. De uitdrukkingen waarop ze deze acties uitvoeren, worden operanden genoemd. De bewerkingen retourneren een booleaans resultaat (waar of onwaar) voor relationele, gelijkheids- en logische operatoren.
Het aantal operanden dat een operator neemt, bepaalt het type. Een operator die één operand aanneemt, wordt "unair" genoemd. Een operator die twee operanden nodig heeft, wordt "binair" genoemd.
Lees verder om te leren hoe u logische en relationele operators in Java kunt gebruiken. Beter nog, de meeste programmeertalen gebruiken dezelfde operatoren, zodat u deze kennis elders kunt toepassen.
Logische operators
Ze worden gebruikt om logische statements te maken tijdens het programmeren. Er zijn zes logische operatoren in Java. De onderstaande tabel vat ze samen.
Operator | Naam | Type |
---|---|---|
| | Booleaanse logische OR | binair |
& | Booleaanse logische AND | binair |
^ | Booleaans Logisch Exclusief OF | binair |
|| | Voorwaardelijke OR | binair |
&& | Voorwaardelijk AND | binair |
! | Logisch NIET | Unair |
Als u wilt controleren of een of beide voorwaarden waar zijn, gebruik dan deze operator. Een voorwaarde is een uitdrukking die waar of onwaar kan zijn.
Booleaans Logisch Inclusief OF (|)
De logische OR controleert of beide operanden waar zijn voordat de expressie wordt geëvalueerd.
if (dob < 2005 | lengte <= 5){
geld++;
}
Het bovenstaande voorbeeld geeft iemand meer geld als hun geboortedatum (dob) lager is dan 2005 of als hun lengte kleiner is dan of gelijk is aan 1,80 meter.
Booleaans logisch EN (&)
Deze operator wordt gebruikt om te controleren of beide voorwaarden waar zijn voordat een bepaald uitvoeringspad in het programma wordt genomen. Het controleert eerst of beide voorwaarden waar zijn voordat de hele uitdrukking wordt geëvalueerd.
Verwant: Strings valideren met behulp van booleaanse methoden in Python
Booleaans Logisch Exclusief OF (^)
Als u wilt controleren of een van de voorwaarden waar is, maar niet beide, dan is dit de operator die u moet gebruiken. De waarheidstabel hieronder vat de resultaten samen die u zult zien wanneer u deze gebruikt.
uitdrukking1 | uitdrukking2 | uitdrukking1 ^ uitdrukking2 |
---|---|---|
vals | vals | vals |
vals | waar | waar |
waar | vals | waar |
waar | waar | vals |
Booleaans voorwaardelijk AND (&&)
Deze operator is vergelijkbaar met de logische AND. Het verschil is dat het eerst controleert of de voorwaarde aan de linkerkant waar is voordat hij verder gaat om de voorwaarde aan de rechterkant te controleren.
Als blijkt dat het linkerdeel onwaar is, stopt de uitvoering onmiddellijk. Anders wordt de evaluatie van het rechterdeel voortgezet. Deze functie staat bekend als kortsluitevaluatie.
Zie de waarheidstabel hieronder om uw begrip van deze operator te onderbouwen.
uitdrukking1 | uitdrukking2 | uitdrukking1 && uitdrukking2 |
---|---|---|
vals | vals | vals |
vals | waar | vals |
waar | vals | vals |
waar | waar | waar |
Voorwaardelijk OF (||)
Als een van de voorwaarden onwaar is, gaat de uitvoering naar het volgende deel van het programma. Met andere woorden, beide voorwaarden moeten waar zijn.
Deze operator is vergelijkbaar met de logische OF. Het controleert ook of een of beide voorwaarden waar zijn voordat bepaalde code wordt uitgevoerd.
Net als de voorwaardelijke AND, gebruikt de logische OR ook kortsluitingsevaluatie. Het controleert eerst of de operand aan de linkerkant waar is voordat de operand aan de rechterkant wordt geëvalueerd.
Verwant: Wat is een constructor in Java en hoe gebruik je het?
Als blijkt dat de voorwaarde aan de linkerkant waar is, hoeft u de rechter niet te controleren. Anders wordt de evaluatie aan de rechterkant voortgezet.
Logisch NIET (!)
Deze operator wordt gebruikt om een voorwaarde te ontkennen. Het draait gewoon de betekenis om van waar het op werkt.
als(!(x>5)){
// uitspraken
}
De bovenstaande instructie betekent dat als "x groter is dan 5" NIET waar is, voer dan de instructies uit binnen de als.
Let op het gebruik van ronde haakjes bij de uitdrukking (x>5). Als u deze haakjes niet opneemt tijdens het schrijven van uw programma, krijgt u een compileerfout. De reden is omdat ! is een unaire operator die werkt op een voorwaarde. Zonder de haakjes zou de compiler het interpreteren als de operator die handelt op de x, niet op x>5.
Het opnemen van haakjes is niet alleen bedoeld om de compiler in staat te stellen een uitdrukking correct te interpreteren. Ze kunnen ook worden gebruikt als een manier voor de programmeur om meer complexe uitdrukkingen beter te begrijpen. Kijk naar het voorbeeld hieronder:
leeftijd >= 7 && lengte < 5
Sommige mensen vinden het misschien moeilijk om door te gaan met de logica. Daarom geven sommige programmeurs de voorkeur aan het toevoegen van overbodige haakjes om redenen van leesbaarheid:
(leeftijd >= 7) && (lengte < 5)
Relationele operators
Deze operatoren worden gebruikt om eenvoudige relaties tussen operanden te vergelijken.
Operator | Naam |
---|---|
> | Groter dan |
< | Minder dan |
>= | Groter dan of gelijk aan |
<= | Minder dan of gelijk aan |
Relationele operatoren zijn vrij eenvoudig te begrijpen omdat ze allemaal dezelfde betekenis hebben als de gebruikelijke algebraïsche operatoren waarmee je al bekend bent. Het is te zeggen, > en < hebben dezelfde betekenis die u al kent als die in de bovenstaande tabel.
als( x <= 7 ){
x++;
}
Bovenstaande als statement controleert of x kleiner is dan of gelijk is aan 7. Indien waar, worden de instructies tussen de haakjes uitgevoerd, anders niet.
Dit zou een goed moment zijn om gelijkheidsoperatoren te noemen. Er zijn er maar twee ( gelijk aan, == en !=, niet gelijk aan ). Zoals hun naam al doet vermoeden, worden ze gebruikt om de gelijkheid tussen twee operanden te testen.
Verwant: Bewerkingen maken en uitvoeren op arrays in Java
De gelijkheidsoperator (==) moet niet worden verward met de toewijzingsoperator (=). Beginnende programmeurs zijn dol op het mixen van de twee. Dit is redelijk aangezien in de algebra het symbool (=) wordt gebruikt om gelijkheid uit te drukken. Dat klopt echter niet met programmeren.
De toewijzingsoperator (=) kent een waarde toe aan een variabele, terwijl de gelijkheidsoperator (==) op gelijkheid test. Zie het onderstaande voorbeeld om het verschil te begrijpen:
als (x=5){
// uitspraken
}
De bovenstaande code wordt altijd uitgevoerd, ongeacht of x daadwerkelijk gelijk is aan 5. Ondertussen wordt de onderstaande code alleen uitgevoerd als x gelijk is aan 5. Daarom is het belangrijk om de twee niet door elkaar te halen.
als (x==5){
// uitspraken
}
De twee genoemde gelijkheidsoperatoren hebben hetzelfde prioriteitsniveau, maar lager dan dat van relationele operatoren.
Relationele operatoren hebben ook hetzelfde prioriteitsniveau. De uitvoering van deze operatoren begint van links naar rechts.
Verdere overwegingen van Java-operators
U moet hebben opgemerkt dat er witruimte is tussen sommige operators en hun operanden in sommige van de voorbeelden, terwijl dat in andere niet het geval is.
De afwezigheid/aanwezigheid van die ruimte zou je geen zorgen moeten maken. De compiler zal het negeren. Daarom betekenen de volgende uitdrukkingen hetzelfde:
Y>=7 // geen witruimte
Y >= 7 // met witruimte
Relationele operatoren worden over het algemeen gebruikt om eenvoudige voorwaarden uit te drukken. Om eenvoudige voorwaarden te combineren tot complexere, moet u logische operators gebruiken. Logische operators kunnen meerdere voorwaarden testen, in tegenstelling tot relationele operators die slechts één voorwaarde testen.
Het is ook belangrijk op te merken dat de logische operatoren ( |, &, ^) bitsgewijze operatoren kunnen zijn als ze integrale operanden hebben. Wanneer ze worden gebruikt als bitsgewijze operatoren, werken ze op de bits van hun operanden.
Met deze kennis van operators zou je je nu moeten voorbereiden op het leren van Java-klassen.
Als u leert programmeren in Java, moet u weten hoe u klassen kunt maken.
Lees volgende
- Programmeren
- Java
- Codeerhandleidingen
Jerome is een stafschrijver bij MakeUseOf. Hij behandelt artikelen over programmeren en Linux. Hij is ook een crypto-enthousiasteling en houdt de crypto-industrie altijd in de gaten.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.