cybercursus

Les opérateurs et les conditions

13 min · Débutant · 3 octobre 2026

Sommaire
  1. Comparer des valeurs
  2. Le piège de == sur les objets
  3. Brancher l’exécution avec if / else if / else
  4. À toi de jouer

Comparer des valeurs

java
int age = 20;
boolean aPermis = true;

System.out.println(age >= 18);               // true
System.out.println(age >= 18 && aPermis);     // true : les deux doivent etre vraies
System.out.println(age < 18 || aPermis);      // true : au moins une est vraie
System.out.println(!aPermis);                 // false : inverse la valeur

Le piège de == sur les objets

java
String a = "bonjour";
String b = "bonjour";
String c = new String("bonjour");

System.out.println(a == b);        // true : litteraux partages (pool de chaines)
System.out.println(a == c);        // false : objets distincts en memoire
System.out.println(a.equals(c));   // true : meme contenu

Attention

Utilise toujours .equals() pour comparer le contenu de deux objets (comme des String), jamais ==. Pour les types primitifs (int, double, boolean), == compare bien les valeurs directement, sans ce piège.

Brancher l’exécution avec if / else if / else

java
public static String categoriser(int note) {
  if (note >= 16) {
      return "Excellent";
  } else if (note >= 10) {
      return "Admis";
  } else {
      return "Ajourne";
  }
}

System.out.println(categoriser(18)); // "Excellent"
System.out.println(categoriser(5));  // "Ajourne"

À toi de jouer

java
String motDePasse1 = "secret123";
String motDePasse2 = new String("secret123");

if (motDePasse1 == motDePasse2) {
  System.out.println("Acces autorise");
} else {
  System.out.println("Acces refuse");
}
Que produit ce code à l'exécution ?
Pourquoi `"bonjour" == new String("bonjour")` renvoie-t-il false en Java, alors que les deux chaînes contiennent le même texte ?
Quelle est la bonne façon de comparer le contenu de deux chaînes de caractères en Java ?

Pour aller plus loin

Commentaires

Recherche