Essentiels Java : Guide Complet des Opérateurs de Base
Java fournit un ensemble riche d'opérateurs pour manipuler les variables. Nous pouvons diviser tous les opérateurs Java en les groupes suivants :
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs bit à bit
- Opérateurs logiques
- Opérateurs d'affectation
- Opérateurs divers
Les opérateurs arithmétiques
Les opérateurs arithmétiques sont utilisés dans les expressions mathématiques de la même manière qu'en algèbre. Le tableau suivant liste les opérateurs arithmétiques :
Supposons que la variable entière A vaut 10 et la variable B vaut 20, alors :
Afficher les exemples
| Opérateur | Description | Exemple |
|---|---|---|
| + (Addition) | Additionne les valeurs de part et d'autre de l'opérateur. | A + B donnera 30 |
| - (Soustraction) | Soustrait l'opérande de droite de l'opérande de gauche. | A - B donnera -10 |
| * (Multiplication) | Multiplie les valeurs de part et d'autre de l'opérateur. | A * B donnera 200 |
| / (Division) | Divise l'opérande de gauche par l'opérande de droite. | B / A donnera 2 |
| % (Modulo) | Divise l'opérande de gauche par l'opérande de droite et retourne le reste. | B % A donnera 0 |
| ++ (Incrémentation) | Augmente la valeur de l'opérande de 1. | B++ donne 21 |
| -- (Décrémentation) | Diminue la valeur de l'opérande de 1. | B-- donne 19 |
Les opérateurs relationnels
Voici les opérateurs relationnels supportés par le langage Java.
Supposons que la variable A vaut 10 et la variable B vaut 20, alors :
Afficher les exemples
| Opérateur | Description | Exemple |
|---|---|---|
| == (égal à) | Vérifie si les valeurs de deux opérandes sont égales, si oui la condition devient vraie. | (A == B) n'est pas vrai. |
| != (différent de) | Vérifie si les valeurs de deux opérandes sont égales, si les valeurs ne sont pas égales la condition devient vraie. | (A != B) est vrai. |
| > (supérieur à) | Vérifie si la valeur de l'opérande de gauche est supérieure à celle de droite, si oui la condition devient vraie. | (A > B) n'est pas vrai. |
| < (inférieur à) | Vérifie si la valeur de l'opérande de gauche est inférieure à celle de droite, si oui la condition devient vraie. | (A < B) est vrai. |
| >= (supérieur ou égal à) | Vérifie si la valeur de l'opérande de gauche est supérieure ou égale à celle de droite, si oui la condition devient vraie. | (A >= B) n'est pas vrai. |
| <= (inférieur ou égal à) | Vérifie si la valeur de l'opérande de gauche est inférieure ou égale à celle de droite, si oui la condition devient vraie. | (A <= B) est vrai. |
Les opérateurs bit à bit
Java définit plusieurs opérateurs bit à bit, qui peuvent être appliqués aux types entiers : long, int, short, char et byte.
L'opérateur bit à bit travaille sur les bits et effectue une opération bit par bit. Supposons que a = 60 et b = 13 ; en format binaire, ils seront :
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Le tableau suivant liste les opérateurs bit à bit :
Supposons que la variable entière A vaut 60 et la variable B vaut 13, alors :
Afficher les exemples
| Opérateur | Description | Exemple |
|---|---|---|
| & (ET bit à bit) | L'opérateur ET binaire copie un bit dans le résultat s'il existe dans les deux opérandes. | (A & B) donnera 12 soit 0000 1100 |
| | (OU bit à bit) | L'opérateur OU binaire copie un bit s'il existe dans l'un ou l'autre opérande. | (A | B) donnera 61 soit 0011 1101 |
| ^ (OU exclusif bit à bit) | L'opérateur XOR binaire copie le bit s'il est défini dans un opérande mais pas les deux. | (A ^ B) donnera 49 soit 0011 0001 |
| ~ (complément bit à bit) | L'opérateur de complément à 1 binaire est unaire et a pour effet d'« inverser » les bits. | (~A) donnera -61 soit 1100 0011 en forme de complément à 2 dû à un nombre binaire signé. |
| << (décalage gauche) | L'opérateur de décalage gauche binaire. La valeur de l'opérande de gauche est décalée vers la gauche du nombre de bits spécifié par l'opérande de droite. | A << 2 donnera 240 soit 1111 0000 |
| >> (décalage droit) | L'opérateur de décalage droit binaire. La valeur de l'opérande de gauche est décalée vers la droite du nombre de bits spécifié par l'opérande de droite. | A >> 2 donnera 15 soit 1111 |
| >>> (décalage droit avec remplissage zéro) | L'opérateur de décalage droit avec remplissage zéro. La valeur de l'opérande de gauche est décalée vers la droite du nombre de bits spécifié par l'opérande de droite et les valeurs décalées sont remplies avec des zéros. | A >>> 2 donnera 15 soit 0000 1111 |
Les opérateurs logiques
Le tableau suivant liste les opérateurs logiques :
Supposons que les variables booléennes A vaut true et B vaut false, alors :
Afficher les exemples
| Opérateur | Description | Exemple |
|---|---|---|
| && (ET logique) | Appelé opérateur ET logique. Si les deux opérandes sont non nuls, la condition devient vraie. | (A && B) est faux |
| || (OU logique) | Appelé opérateur OU logique. Si l'un des deux opérandes est non nul, la condition devient vraie. | (A || B) est vrai |
| ! (NON logique) | Appelé opérateur NON logique. Utilisé pour inverser l'état logique de son opérande. Si une condition est vraie, l'opérateur NON la rend fausse. | !(A && B) est vrai |
Les opérateurs d'affectation
Voici les opérateurs d'affectation supportés par Java :
Afficher les exemples
| Opérateur | Description | Exemple |
|---|---|---|
| = | Opérateur d'affectation simple. Assigne les valeurs des opérandes de droite à l'opérande de gauche. | C = A + B assigne la valeur de A + B dans C |
| += | Opérateur d'addition ET affectation. Ajoute l'opérande de droite à l'opérande de gauche et assigne le résultat à l'opérande de gauche. | C += A est équivalent à C = C + A |
| -= | Opérateur de soustraction ET affectation. Soustrait l'opérande de droite de l'opérande de gauche et assigne le résultat à l'opérande de gauche. | C -= A est équivalent à C = C - A |
| *= | Opérateur de multiplication ET affectation. Multiplie l'opérande de droite avec l'opérande de gauche et assigne le résultat à l'opérande de gauche. | C *= A est équivalent à C = C * A |
| /= | Opérateur de division ET affectation. Divise l'opérande de gauche par l'opérande de droite et assigne le résultat à l'opérande de gauche. | C /= A est équivalent à C = C / A |
| %= | Opérateur de modulo ET affectation. Prend le modulo en utilisant deux opérandes et assigne le résultat à l'opérande de gauche. | C %= A est équivalent à C = C % A |
| <<= | Opérateur de décalage gauche ET affectation. | C <<= 2 est identique à C = C << 2 |
| >>= | Opérateur de décalage droit ET affectation. | C >>= 2 est identique à C = C >> 2 |
| &= | Opérateur ET bit à bit ET affectation. | C &= 2 est identique à C = C & 2 |
| ^= | Opérateur OU exclusif bit à bit ET affectation. | C ^= 2 est identique à C = C ^ 2 |
| |= | Opérateur OU inclusif bit à bit ET affectation. | C |= 2 est identique à C = C | 2 |
Opérateurs divers
Il y a quelques autres opérateurs supportés par le langage Java.
Opérateur conditionnel ( ? : )
L'opérateur conditionnel est aussi connu sous le nom d'opérateur ternaire. Cet opérateur se compose de trois opérandes et est utilisé pour évaluer des expressions booléennes. Le but de l'opérateur est de décider quelle valeur doit être assignée à la variable. L'opérateur s'écrit comme suit :
variable x = (expression) ? valeur si vrai : valeur si faux
Voici un exemple :
Exemple
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 );
}
}
Cela produira le résultat suivant :
Sortie
Value of b is : 30 Value of b is : 20
Opérateur instanceof
Cet opérateur est utilisé uniquement pour les variables de référence d'objet. L'opérateur vérifie si l'objet est d'un type particulier (type de classe ou type d'interface). L'opérateur instanceof s'écrit comme suit :
( Variable de référence d'objet ) instanceof (type de classe/interface)
Si l'objet référencé par la variable du côté gauche de l'opérateur passe le test IS-A pour le type de classe/interface du côté droit, le résultat sera true. Voici un exemple :
Exemple
Live Demopublic class Test {
public static void main(String args[]) {
String name = "James";
// ce qui suit retournera true car name est de type String
boolean result = name instanceof String;
System.out.println( result );
}
}
Cela produira le résultat suivant :
Sortie
true
Cet opérateur retournera toujours true, si l'objet comparé est compatible avec l'affectation du type à droite. Voici un autre exemple :
Exemple
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 );
}
}
Cela produira le résultat suivant :
Sortie
true
Précédence des opérateurs Java
La précédence des opérateurs détermine le regroupement des termes dans une expression. Cela affecte la façon dont une expression est évaluée. Certains opérateurs ont une précédence plus élevée que d'autres ; par exemple, l'opérateur de multiplication a une précédence plus élevée que l'opérateur d'addition :
Par exemple, x = 7 + 3 * 2 ; ici x est assigné 13, pas 20 car l'opérateur * a une précédence plus élevée que +, donc il est d'abord multiplié 3 * 2 puis ajouté à 7.
Ici, les opérateurs avec la précédence la plus élevée apparaissent en haut du tableau, ceux avec la plus faible en bas. Dans une expression, les opérateurs de précédence plus élevée seront évalués en premier.
| Catégorie | Opérateur | Associativité |
|---|---|---|
| Postfixe | expression++ expression-- | Gauche à droite |
| Unaire | ++expression --expression +expression -expression ~ ! | Droite à gauche |
| Multiplicatif | * / % | Gauche à droite |
| Additif | + - | Gauche à droite |
| Décalage | << >> >>> | Gauche à droite |
| Relationnel | < > <= >= instanceof | Gauche à droite |
| Égalité | == != | Gauche à droite |
| ET bit à bit | & | Gauche à droite |
| OU exclusif bit à bit | ^ | Gauche à droite |
| OU bit à bit | | | Gauche à droite |
| ET logique | && | Gauche à droite |
| OU logique | || | Gauche à droite |
| Conditionnel | ?: | Droite à gauche |
| Affectation | = += -= *= /= %= ^= |= <<= >>= >>>= | Droite à gauche |
Quelle est la suite ?
Le prochain chapitre expliquera le contrôle de boucle en programmation Java. Le chapitre décrira les différents types de boucles et comment elles peuvent être utilisées dans le développement de programmes Java et à quelles fins elles sont utilisées.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser l'entrée/sortie Java : Afficher, lire et formater vos données
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code