Les opérateurs¶
Java fournit un ensemble d’opérateurs pour manipuler des variables.
Nous pouvons les diviser en des groupes comme suit :
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs logiques
- Opérateurs bit à bit
- Opérateurs d’affectation
- Autres opérateurs
Opérateurs arithmétiques¶
Le tableau suivant présente tous les opérateurs arithmétiques supportés par le langage Java.
| Opérateur | Description |
|---|---|
| + | La somme |
| - | La soustraction |
| * | La multiplication |
| / | La division |
| % | Modulo |
| ++ | Opérateur d’incrémentation |
| -- | Opérateur de décrémentation |
int x = 4;
int y = 2;
int z = 6;
int w = 8;
System.out.println("x + y = " + (x + y) );
System.out.println("x - y = " + (x - y) );
System.out.println("x * y = " + (x * y) );
System.out.println("y / x = " + (y / x) );
System.out.println("y % x = " + (y % x) );
System.out.println("z % x = " + (z % x) );
System.out.println("x++ = " + (x++) );
System.out.println("y-- = " + (x--) );
// Vérifier la différence entre w++ et ++w
System.out.println("w++ = " + (w++) );
System.out.println("++w = " + (++w) );
Opérateurs relationnels¶
Le tableau suivant montre tous les opérateurs relationnels supportés par Java.
| Opérateur | Description |
|---|---|
| == | Vérifie si les deux opérandes sont égales ou non. Si oui, alors la condition est true. |
| != | Vérifie si les deux opérandes sont égales ou non. Si les valeurs ne sont pas égales, la condition est True. |
| > | Vérifie si la valeur de l’opérande gauche est supérieure à la valeur de l’opérande droit. Si oui, alors la condition devient True. |
| < | Vérifie si la valeur de l’opérande gauche est inférieure à la valeur de l’opérande droit. Si oui, alors la condition devient True. |
| >= | Vérifie si la valeur de l’opérande gauche est supérieure ou égale à la valeur de l’opérande droit. Si oui, alors la condition devient True. |
| <= | Vérifie si la valeur de l’opérande gauche est inférieure ou égale à la valeur de l’opérande droit. Si oui, alors la condition devient True. |
int x = 10;
int y = 20;
System.out.println("x == y = "+ (x == y) );
System.out.println("x != y = "+ (x != y) );
System.out.println("x > y = "+ (x > y) );
System.out.println("x < y = "+ (x < y) );
System.out.println("y >= x = "+ (y >= x) );
System.out.println("y <= x = "+ (y <= x) );
Opérateurs logiques¶
Le tableau suivant montre tous les opérateurs logiques pris en charge par le langage Java.
| Opérateur | Description |
|---|---|
| && | Opérateur logique AND. Si les deux opérandes ne sont pas égaux à zéro, la condition devient True. |
| || | Opérateur logique OR. Si l’un des deux opérandes est non nul, la condition devient True. |
| ! | Opérateur logique NOT. Il est utilisé pour inverser l’état logique de son opérande. Si une condition est True, l’opérateur NOT le rendra False. |
boolean x = true;
boolean y = false;
System.out.println("x && y = " + (x&&y));
System.out.println("x || y = " + (x||y) );
System.out.println("!(x && y) = " + !(x && y));
Opérateurs bit à bit¶
L’opérateur bit à bit fonctionne sur les bits et exécute l’opération bit par bit. Les tables de vérité pour &, | , et ^ sont les suivantes :
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
int x = 60; // 60 = 0011 1100
int y = 13; // 13 = 0000 1101
int z = 0;
z = x & y; // 12 = 0000 1100
System.out.println("x & y = " + z );
z = x | y; // 61 = 0011 1101
System.out.println("x | y = " + z );
z = x ^ y; // 49 = 0011 0001
System.out.println("x ^ y = " + z );
z = ~x; //-61 = 1100 0011
System.out.println("~x = " + z );
z = x << 2; // 240 = 1111 0000
System.out.println("x << 2 = " + z );
z = x >> 2; // 15 = 1111
System.out.println("x >> 2 = " + z );
z = x >>> 2; // 15 = 0000 1111
System.out.println("x >>> 2 = " + z );
Opérateurs d’affectation¶
Le tableau suivant représente les opérateurs d’affectation pris en charge par le langage Java
| Opérateur | Description |
|---|---|
| = | Opérateur d’affectation simple. Affecte les valeurs des opérandes de droite à l’opérande de gauche C = A + B assignera la valeur de A + B à C |
| += | Il ajoute l’opérande droit à l’opérande gauche et affecte le résultat à l’opérande gauche. C += A est équivalent à C = C + A |
| -= | Il soustrait l’opérande droit de l’opérande gauche et affecte le résultat à l’opérande gauche. C -= A est équivalent à C = C – A |
| *= | Il multiplie l’opérande droit par l’opérande gauche et attribue le résultat à l’opérande gauche. C *= A est équivalent à C = C * A |
| /= | Il divise l’opérande gauche par l’opérande droit et affecte le résultat à l’opérande gauche. C /= A est équivalent à C = C / A |
| %= | Il prend le modulo en utilisant deux opérandes et attribue le résultat à l’opérande gauche. C %= A est équivalent à C = C % A |
| <<= | Opérateur de décalage à gauche. C <<= 2 est identique à C = C << 2 |
| >>= | Opérateur de décalage à droite C >>= 2 est identique à C = C >> 2 |
| &= | Opérateur bit à bit. C &= 2 est identique à C = C & 2 |
| ^= | Opérateur OU exclusif bit à bit. C ^= 2 est identique à C = C ^ 2 |
| |= | Opérateur OU inclusive bit à bit. C |= 2 est identique à C = C | 2 |
int x = 10;
int y = 20;
int z = 0;
z = x + y;
System.out.println("z = x + y = " + z );
z += x ;
System.out.println("z += x = " + z );
z -= x ;
System.out.println("z -= x = " + z );
z *= x ;
System.out.println("z *= x = " + z );
x = 10;
z = 15;
z /= x ;
System.out.println("c /= x = " + z );
x = 10;
z = 15;
z %= x ;
System.out.println("z %= x = " + z );
z <<= 2 ;
System.out.println("z <<= 2 = " + z );
z >>= 2 ;
System.out.println("z >>= 2 = " + z );
z >>= 2 ;
System.out.println("z >>= 2 = " + z );
z &= x ;
System.out.println("z &= x = " + z );
z ^= x ;
System.out.println("z ^= x = " + z );
z |= x ;
System.out.println("z |= x = " + z );
Opérateur ternaire¶
Outre les opérateurs examinés ci-dessus, il existe quelques autres opérateurs importants dont sizeof et ? : sont pris en charge par le langage Java.
| Opérateur | Description |
|---|---|
| ? : | Expression conditionnelle. Si Condition est True ? donc la valeur X : sinon la valeur Y |