Java - Basisoperators
Java biedt een uitgebreide reeks operators om variabelen te manipuleren. We kunnen alle Java-operators in de volgende groepen verdelen −
- Rekenkundige operatoren
- Relationele operators
- Bitwise-operators
- Logische operators
- Opdrachtoperators
- Diverse operators
De rekenkundige operatoren
Rekenkundige operatoren worden in wiskundige uitdrukkingen op dezelfde manier gebruikt als in de algebra. In de volgende tabel staan de rekenkundige operatoren −
Neem aan dat integer variabele A 10 bevat en variabele B 20, dan −
Voorbeelden tonen
Operator | Beschrijving | Voorbeeld |
---|---|---|
+ (Toevoeging) | Voegt waarden toe aan weerszijden van de operator. | A + B geeft 30 |
- (aftrekken) | Trekt de rechter operand af van de linker operand. | A - B geeft -10 |
* (Vermenigvuldiging) | Vermenigvuldigt waarden aan weerszijden van de operator. | Een * B geeft 200 |
/ (Divisie) | Verdeelt de linker operand door de rechter operand. | B / A geeft 2 |
% (Modulus) | Verdeelt de linker operand door de rechter operand en geeft de rest terug. | B % A geeft 0 |
++ (Verhogen) | Verhoogt de waarde van operand met 1. | B++ geeft 21 |
-- (Verlagen) | Verlaagt de waarde van operand met 1. | B-- geeft 19 |
De relationele operators
Er zijn de volgende relationele operators die worden ondersteund door de Java-taal.
Neem aan dat variabele A 10 bevat en variabele B 20, dan −
Voorbeelden tonen
Operator | Beschrijving | Voorbeeld |
---|---|---|
==(gelijk aan) | Controleert of de waarden van twee operanden gelijk zijn of niet, zo ja, dan wordt de voorwaarde waar. | (A ==B) is niet waar. |
!=(niet gelijk aan) | Controleert of de waarden van twee operanden gelijk zijn of niet, als de waarden niet gelijk zijn, wordt de voorwaarde waar. | (A !=B) is waar. |
> (groter dan) | Controleert of de waarde van de linker operand groter is dan de waarde van de rechter operand, zo ja, dan wordt de voorwaarde waar. | (A> B) is niet waar. |
<(kleiner dan) | Controleert of de waarde van de linker operand kleiner is dan de waarde van de rechter operand, zo ja, dan wordt de voorwaarde waar. | (A |
>=(groter dan of gelijk aan) | Controleert of de waarde van de linker operand groter is dan of gelijk is aan de waarde van de rechter operand, zo ja, dan wordt de voorwaarde waar. | (A>=B) is niet waar. |
<=(kleiner dan of gelijk aan) | Controleert of de waarde van de linker operand kleiner is dan of gelijk is aan de waarde van de rechter operand, zo ja, dan wordt de voorwaarde waar. | (A <=B) is waar. |
De Bitwise-operators
Java definieert verschillende bitsgewijze operators, die kunnen worden toegepast op de integer-types long, int, short, char en byte.
Bitwise-operator werkt op bits en voert bit-voor-bit bewerkingen uit. Neem aan dat a =60 en b =13; nu in binair formaat zullen ze als volgt zijn −
a =0011 1100
b =0000 1101
-----------------
a&b =0000 1100
a|b =0011 1101
a^b =0011 0001
~a =1100 0011
In de volgende tabel staan de bitsgewijze operatoren −
Neem aan dat integer variabele A 60 bevat en variabele B 13, dan −
Voorbeelden tonen
Operator | Beschrijving | Voorbeeld |
---|---|---|
&(bitsgewijze en) | Binaire AND-operator kopieert een bit naar het resultaat als het in beide operanden bestaat. | (A &B) geeft 12 wat 0000 1100 is |
| (bitsgewijs of) | Binaire OR-operator kopieert een bit als het in een van beide operands voorkomt. | (A | B) geeft 61 wat 0011 1101 is |
^ (bitsgewijze XOR) | Binaire XOR-operator kopieert de bit als deze in één operand is ingesteld, maar niet in beide. | (A ^ B) geeft 49 wat 0011 0001 is |
~ (bitsgewijze compliment) | Binary Ones Complement Operator is unair en heeft het effect van 'flipping' bits. | (~A ) geeft -61 wat 1100 0011 is in de complementvorm van 2 vanwege een ondertekend binair getal. |
<<(shift naar links) | Binaire linker shift-operator. De waarde van de linkeroperand wordt naar links verplaatst met het aantal bits dat is opgegeven door de rechteroperand. | Een <<2 geeft 240 wat 1111 0000 is |
>> (shift naar rechts) | Binaire Right Shift-operator. De waarde van de linkeroperand wordt naar rechts verplaatst met het aantal bits dat is opgegeven door de rechteroperand. | A>> 2 geeft 15 wat 1111 is |
>>> (nul vulling rechterverschuiving) | Schuif naar rechts nulvul-operator. De waarde van de linkeroperand wordt naar rechts verplaatst met het aantal bits dat is gespecificeerd door de rechteroperand en de verschoven waarden worden opgevuld met nullen. | A>>>2 geeft 15 wat 0000 1111 is |
De logische operators
In de volgende tabel staan de logische operatoren −
Neem aan dat Booleaanse variabelen A waar is en variabele B onwaar, dan −
Voorbeelden tonen
Operator | Beschrijving | Voorbeeld |
---|---|---|
&&(logisch en) | Logische AND-operator genoemd. Als beide operanden niet nul zijn, wordt de voorwaarde waar. | (A &&B) is onwaar |
|| (logisch of) | Logische OR-operator genoemd. Als een van de twee operanden niet nul is, wordt de voorwaarde waar. | (A || B) is waar |
! (logisch niet) | Logische NOT-operator genoemd. Gebruiken om de logische status van de operand om te keren. Als een voorwaarde waar is, maakt de Logische NIET-operator onwaar. | !(A &&B) is waar |
De toewijzingsoperators
Hieronder volgen de toewijzingsoperators die worden ondersteund door de Java-taal −
Voorbeelden tonen
Operator | Beschrijving | Voorbeeld |
---|---|---|
= | Eenvoudige toewijzingsoperator. Wijst waarden toe van operanden aan de rechterkant aan operanden aan de linkerkant. | C =A + B zal de waarde van A toekennen + B in C |
+= | Voeg een AND-toewijzingsoperator toe. Het voegt de rechter operand toe aan de linker operand en wijst het resultaat toe aan de linker operand. | C +=A is gelijk aan C =C + een |
-= | Trek de AND-toekenningsoperator af. Het trekt de rechter operand af van de linker operand en wijst het resultaat toe aan de linker operand. | C -=A is gelijk aan C =C – A |
*= | Vermenigvuldig EN toewijzingsoperator. Het vermenigvuldigt de rechter operand met de linker operand en wijst het resultaat toe aan de linker operand. | C *=A is gelijk aan C =C * een |
/= | Deel AND toewijzingsoperator. Het verdeelt de linker operand met de rechter operand en wijst het resultaat toe aan de linker operand. | C /=A is gelijk aan C =C / A |
%= | Modulus EN toewijzingsoperator. Het vereist modulus met twee operanden en wijst het resultaat toe aan de linkeroperand. | C %=A is gelijk aan C =C % A |
<<= | Linker shift AND toewijzingsoperator. | C <<=2 is hetzelfde als C =C <<2 |
>>= | Rechts shift AND toewijzingsoperator. | C>>=2 is hetzelfde als C =C>> 2 |
&= | Bitwise AND-toewijzingsoperator. | C &=2 is hetzelfde als C =C &2 |
^= | bitsgewijze exclusieve OR en toewijzingsoperator. | C ^=2 is hetzelfde als C =C ^ 2 |
|= | bitsgewijze inclusief OR en toewijzingsoperator. | C |=2 is hetzelfde als C =C | 2 |
Diverse operators
Er zijn maar weinig andere operators die door Java Language worden ondersteund.
Voorwaardelijke operator ( ? :)
Voorwaardelijke operator is ook bekend als de ternaire operator . Deze operator bestaat uit drie operanden en wordt gebruikt om Booleaanse expressies te evalueren. Het doel van de operator is om te beslissen welke waarde aan de variabele moet worden toegewezen. De operator wordt geschreven als −
variable x = (expression) ? value if true : value if false
Hieronder volgt een voorbeeld −
Voorbeeld
Live demopublic class Test { public static void main(String args[]) { int a, b; a = 10; b = (a == 1) ? 20: 30; System.out.println( "Value of b is : " + b ); b = (a == 10) ? 20: 30; System.out.println( "Value of b is : " + b ); } }
Dit levert het volgende resultaat op −
Uitvoer
Value of b is : 30 Value of b is : 20
exemplaar van operator
Deze operator wordt alleen gebruikt voor objectreferentievariabelen. De operator controleert of het object van een bepaald type is (klassetype of interfacetype). instanceof-operator wordt geschreven als −
( Object reference variable ) instanceof (class/interface type)
Als het object waarnaar wordt verwezen door de variabele aan de linkerkant van de operator slaagt voor de IS-A-controle voor het klasse/interfacetype aan de rechterkant, dan is het resultaat waar. Hieronder volgt een voorbeeld −
Voorbeeld
Live demopublic class Test { public static void main(String args[]) { String name = "James"; // following will return true since name is type of String boolean result = name instanceof String; System.out.println( result ); } }
Dit levert het volgende resultaat op −
Uitvoer
true
Deze operator zal nog steeds true retourneren als het object dat wordt vergeleken de toewijzing is die compatibel is met het type aan de rechterkant. Hieronder volgt nog een voorbeeld −
Voorbeeld
Live democlass Vehicle {} public class Car extends Vehicle { public static void main(String args[]) { Vehicle a = new Car(); boolean result = a instanceof Car; System.out.println( result ); } }
Dit levert het volgende resultaat op −
Uitvoer
true
Voorrang van Java-operators
De operatorprioriteit bepaalt de groepering van termen in een uitdrukking. Dit heeft invloed op de manier waarop een uitdrukking wordt geëvalueerd. Bepaalde operators hebben een hogere prioriteit dan andere; de operator voor vermenigvuldigen heeft bijvoorbeeld een hogere prioriteit dan de operator voor optellen −
Bijvoorbeeld x =7 + 3 * 2; hier wordt x 13 toegewezen, niet 20 omdat operator * heeft een hogere prioriteit dan +, dus het wordt eerst vermenigvuldigd met 3 * 2 en voegt het toe aan 7.
Hier verschijnen operators met de hoogste prioriteit bovenaan de tabel, die met de laagste onderaan. Binnen een uitdrukking worden eerst operators met een hogere prioriteit geëvalueerd.
Categorie | Operator | Associativiteit |
---|---|---|
Postfix | expression++ expressie-- | Links naar rechts |
Unair | ++expression –-expression +expression –expression ~ ! | Van rechts naar links |
Multiplicatief | * / % | Links naar rechts |
Additief | + - | Links naar rechts |
Shift | <<>>>>> | Links naar rechts |
Relationeel | <> <=>=instantievan | Links naar rechts |
Gelijkheid | ==!= | Links naar rechts |
Bitgewijs EN | & | Links naar rechts |
Bitwise XOR | ^ | Links naar rechts |
Bitgewijs OF | | | Links naar rechts |
Logisch EN | && | Links naar rechts |
Logische OF | || | Links naar rechts |
Voorwaardelijk | ?: | Van rechts naar links |
Opdracht | =+=-=*=/=%=^=|=<<=>>=>>>= | Van rechts naar links |
Wat is de volgende stap?
In het volgende hoofdstuk wordt uitleg gegeven over lusbesturing in Java-programmering. Het hoofdstuk beschrijft verschillende soorten lussen en hoe deze lussen kunnen worden gebruikt bij de ontwikkeling van Java-programma's en voor welke doeleinden ze worden gebruikt.
Java