2.2Opérateurs
2.2.1 – Opérateurs arithmétiques
Les opérateurs arithmétiques permettent d'effectuer des calculs mathématiques de base : addition, soustraction, multiplication, division, et modulo. Ces opérateurs fonctionnent avec les types numériques (int, double, float, etc.).
➕ Les opérateurs arithmétiques de base
| Opérateur | Symbole | Description | Exemple | Résultat |
|---|---|---|---|---|
| Addition | + |
Additionne deux valeurs | 5 + 3 |
8 |
| Soustraction | - |
Soustrait une valeur d'une autre | 10 - 4 |
6 |
| Multiplication | * |
Multiplie deux valeurs | 6 * 7 |
42 |
| Division | / |
Divise une valeur par une autre | 15 / 3 |
5 |
| Modulo | % |
Reste de la division entière | 17 % 5 |
2 |
📝 Exemples d'utilisation
int a = 10;
int b = 3;
int somme = a + b; // 13
int difference = a - b; // 7
int produit = a * b; // 30
int quotient = a / b; // 3 (division entière)
int reste = a % b; // 1 (reste de 10 Ă· 3)
⚠️ Division entière vs Division décimale
La division en Java dépend des types utilisés :
Division entière (avec int)
Quand vous divisez deux entiers, le résultat est un entier (la partie décimale est tronquée) :
int a = 10;
int b = 3;
int resultat = a / b; // Résultat : 3 (pas 3.333...)
int c = 7;
int d = 2;
int quotient = c / d; // Résultat : 3 (pas 3.5)
Important : La partie décimale est perdue, pas arrondie !
Division décimale (avec double ou float)
Pour obtenir un résultat décimal, utilisez des types décimaux :
double a = 10.0;
double b = 3.0;
double resultat = a / b; // Résultat : 3.3333333333333335
// Ou avec int mais conversion
int x = 10;
int y = 3;
double resultat2 = (double) x / y; // Résultat : 3.3333333333333335
🔢 Opérateur modulo (%)
L'opérateur modulo retourne le reste de la division entière :
int reste1 = 10 % 3; // 1 (car 10 = 3Ă—3 + 1)
int reste2 = 17 % 5; // 2 (car 17 = 5Ă—3 + 2)
int reste3 = 20 % 4; // 0 (car 20 = 4Ă—5 + 0)
int reste4 = 7 % 2; // 1 (utile pour vérifier si un nombre est pair/impair)
• Vérifier si un nombre est pair :
nombre % 2 == 0• Vérifier si un nombre est impair :
nombre % 2 == 1• Obtenir le dernier chiffre :
nombre % 10• Vérifier la divisibilité :
nombre % 5 == 0 (divisible par 5)
⚡ Opérateurs d'incrémentation et de décrémentation
Java offre des opérateurs spéciaux pour augmenter ou diminuer une variable de 1 :
Opérateurs ++ et --
int x = 5;
// Incrémentation (ajouter 1)
x++; // x devient 6 (équivalent à x = x + 1)
++x; // x devient 7 (équivalent à x = x + 1)
// Décrémentation (soustraire 1)
x--; // x devient 6 (équivalent à x = x - 1)
--x; // x devient 5 (équivalent à x = x - 1)
Préfixe vs Suffixe
Il y a une différence subtile entre ++x (préfixe) et x++ (suffixe) :
Suffixe (x++) : Utilise d'abord la valeur, puis incrémente
int a = 5;
int b = ++a; // a devient 6, puis b = 6
// Résultat : a = 6, b = 6
int c = 5;
int d = c++; // d = 5, puis c devient 6
// Résultat : c = 6, d = 5
🔀 Opérateurs d'assignation composés
Java offre des opérateurs d'assignation composés pour simplifier certaines opérations :
| Opérateur | Équivalent | Description | Exemple |
|---|---|---|---|
+= |
x = x + y |
Addition puis assignation | x += 5; |
-= |
x = x - y |
Soustraction puis assignation | x -= 3; |
*= |
x = x * y |
Multiplication puis assignation | x *= 2; |
/= |
x = x / y |
Division puis assignation | x /= 4; |
%= |
x = x % y |
Modulo puis assignation | x %= 5; |
int x = 10;
x += 5; // Équivalent à x = x + 5; → x = 15
x -= 3; // Équivalent à x = x - 3; → x = 12
x *= 2; // Équivalent à x = x * 2; → x = 24
x /= 4; // Équivalent à x = x / 4; → x = 6
x %= 5; // Équivalent à x = x % 5; → x = 1
📊 Priorité des opérateurs
Les opérateurs ont une priorité d'exécution. Voici l'ordre de priorité (du plus prioritaire au moins prioritaire) :
- Parentheses
(): Toujours évaluées en premier - Multiplication, Division, Modulo
*,/,% - Addition, Soustraction
+,-
int resultat1 = 2 + 3 * 4; // 14 (pas 20) : 3*4 d'abord, puis +2
int resultat2 = (2 + 3) * 4; // 20 : parenthèses d'abord
int resultat3 = 10 / 2 + 3; // 8 : 10/2 d'abord, puis +3
int resultat4 = 10 / (2 + 3); // 2 : parenthèses d'abord
💡 Points clés à retenir
- Opérateurs de base : +, -, *, /, %
- Division entière : Avec int, la partie décimale est tronquée
- Division décimale : Utilisez double ou float pour obtenir des décimales
- Modulo : Retourne le reste de la division
- Incrémentation :
++xoux++(ajoute 1) - Décrémentation :
--xoux--(soustrait 1) - Assignation composée :
+=,-=,*=,/=,%= - Priorité : Parenthèses → * / % → + -
2.2.2 – Opérateurs logiques et de comparaison
Les opérateurs de comparaison permettent de comparer des valeurs, et les opérateurs logiques permettent de combiner plusieurs conditions. Ces opérateurs sont essentiels pour créer des programmes qui prennent des décisions basées sur des conditions.
🔍 Opérateurs de comparaison
Les opérateurs de comparaison comparent deux valeurs et retournent un booléen (true ou false) :
| Opérateur | Symbole | Description | Exemple | Résultat |
|---|---|---|---|---|
| Égal à | == |
Vérifie si deux valeurs sont égales | 5 == 5 |
true |
| Différent de | != |
Vérifie si deux valeurs sont différentes | 5 != 3 |
true |
| Plus grand que | > |
Vérifie si la première valeur est plus grande | 10 > 5 |
true |
| Plus petit que | < |
Vérifie si la première valeur est plus petite | 3 < 7 |
true |
| Plus grand ou égal | >= |
Vérifie si la première valeur est plus grande ou égale | 5 >= 5 |
true |
| Plus petit ou égal | <= |
Vérifie si la première valeur est plus petite ou égale | 4 <= 5 |
true |
==compare les valeurs (ne confondez pas avec=qui est l'assignation)- Pour les String, utilisez
.equals()plutĂ´t que==(nous verrons cela plus tard)
📝 Exemples d'utilisation
int a = 10;
int b = 5;
boolean egal = (a == b); // false
boolean different = (a != b); // true
boolean plusGrand = (a > b); // true
boolean plusPetit = (a < b); // false
boolean plusGrandOuEgal = (a >= b); // true
boolean plusPetitOuEgal = (a <= b); // false
🔗 Opérateurs logiques
Les opérateurs logiques permettent de combiner plusieurs conditions :
| Opérateur | Symbole | Description | Exemple | Résultat |
|---|---|---|---|---|
| ET logique | && |
Retourne true si les deux conditions sont vraies | true && true |
true |
| OU logique | || |
Retourne true si au moins une condition est vraie | true || false |
true |
| NON logique | ! |
Inverse la valeur booléenne | !true |
false |
Table de vérité pour && (ET)
| A | B | A && B |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
Table de vérité pour || (OU)
| A | B | A || B |
|---|---|---|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
📝 Exemples d'utilisation des opérateurs logiques
int age = 20;
boolean estMajeur = (age >= 18); // true
int note = 15;
boolean estValide = (note >= 0 && note <= 20); // true (note entre 0 et 20)
int temperature = 25;
boolean estConfortable = (temperature >= 20 && temperature <= 26); // true
// OU logique
boolean estWeekend = true;
boolean estVacances = false;
boolean peutDormir = (estWeekend || estVacances); // true
// NON logique
boolean estFerme = false;
boolean estOuvert = !estFerme; // true
⚡ Évaluation court-circuit (Short-circuit evaluation)
Java utilise l'évaluation court-circuit pour les opérateurs && et || :
- Avec
&&: Si la première condition estfalse, la seconde n'est pas évaluée - Avec
||: Si la première condition esttrue, la seconde n'est pas évaluée
int x = 5;
// Avec && : si la première condition est false, la seconde n'est pas évaluée
if (x > 10 && x < 20) {
// x > 10 est false, donc x < 20 n'est même pas vérifié
}
// Avec || : si la première condition est true, la seconde n'est pas évaluée
if (x < 10 || x > 20) {
// x < 10 est true, donc x > 20 n'est même pas vérifié
}
🔀 Opérateurs bitwise (optionnel, avancé)
Java offre également des opérateurs bitwise pour les opérations au niveau des bits. Ces opérateurs sont moins utilisés pour débuter :
&: ET bitwise|: OU bitwise^: XOR bitwise~: NON bitwise<<: Décalage à gauche>>: Décalage à droite
&&, || et !.
💡 Points clés à retenir
- Opérateurs de comparaison :
==,!=,>,<,>=,<= - Retournent des booléens : Tous les opérateurs de comparaison retournent
trueoufalse - ET logique :
&&(les deux conditions doivent ĂŞtre vraies) - OU logique :
||(au moins une condition doit ĂŞtre vraie) - NON logique :
!(inverse la valeur booléenne) - Évaluation court-circuit : Java optimise l'évaluation des conditions
- Attention :
==compare,=assigne (ne confondez pas !)