1. java-hell.de
  2. Thèmes
  3. If-Else
Thème 3 sur 11

Apprendre if-else en Java – Exercices sur les conditions

À partir de maintenant, ton programme prend des décisions. Avec if, else et else if, tu réagis aux valeurs, et les opérateurs de comparaison te disent ce qui se passe.

Les exercices

Ce que tu vas apprendre dans ce thème

  1. Ton premier if
  2. If-else
  3. Comparer
  4. Else-if
Exercice 1 sur 4

Ton premier if

Avec if, du code ne s'exécute que si une condition est vraie :

if (age >= 18) {
    IO.println("Majeur");
}

Le code vérifie si nombre est plus grand que 10. Modifie nombre pour que le texte s'affiche.

Code de départ
void main() {
    int nombre = 5;

    if (nombre > 10) {
        IO.println("Plus grand que 10 !");
    }
}
Contexte
Comment le compilateur gère les conditions

En bytecode, un if devient un saut conditionnel. Le processeur évalue une comparaison et, selon le résultat, saute dans le bloc « alors » ou passe directement par-dessus.

Les processeurs modernes font de la prédiction de branchement : ils devinent quelle branche est la plus probable et commencent à préparer ce code à l'avance. Si le processeur se trompe, le travail part à la poubelle (vidage du pipeline).

Exercice 2 sur 4

If-else

Avec else, tu indiques ce qui doit se passer quand la condition n'est pas vraie :

if (condition) {
    // si vrai
} else {
    // si faux
}

Les lignes println sont déjà là. Il te reste juste à écrire la condition du if : vérifie si temperature est supérieure ou égale à 20.

Code de départ
void main() {
    int temperature = 22;

    if (???) {
        IO.println("Chaud");
    } else {
        IO.println("Froid");
    }
}
Contexte
L'opérateur ternaire : le if-else en version courte

Java propose une version du if-else qui tient sur une ligne : resultat = condition ? siVrai : siFaux;

Exemple : String s = temperature >= 20 ? "Chaud" : "Froid"; : même décision que le bloc if-else de cet exercice, juste plus compacte.

Exercice 3 sur 4

Comparer

Java possède ces opérateurs de comparaison :

  • == égal à
  • != différent de
  • < inférieur à
  • > supérieur à
  • <= inférieur ou égal à
  • >= supérieur ou égal à

Attention : pour tester l'égalité, on écrit == (double !), pas = (ça, c'est l'affectation).

Écris la condition : vérifie si motDePasse a la valeur 1234.

Code de départ
void main() {
    int motDePasse = 1234;

    if (???) {
        IO.println("Accès autorisé");
    } else {
        IO.println("Mot de passe incorrect");
    }
}
Contexte
== contre .equals() : le piège Java numéro un

Pour les types primitifs (int, double, boolean), == compare les valeurs : c'est exactement ce qu'il faut.

Pour les objets (String, tableaux, tes propres classes), == compare la référence (est-ce exactement le même objet en mémoire ?), pas le contenu ! Pour les chaînes de caractères et la plupart des objets, il te faut .equals(). Les tableaux sont un cas à part : leur .equals() compare lui aussi seulement les références, utilise plutôt Arrays.equals(). C'est l'une des erreurs de débutant les plus courantes en Java.

Exercice 4 sur 4

Else-if

Pour plusieurs conditions, utilise else if :

if (note == 1) {
    // ...
} else if (note == 2) {
    // ...
} else {
    // tout le reste
}

Ajoute le bloc else if qui manque : si note vaut 2, affiche Bien.

Code de départ
void main() {
    int note = 2;

    if (note == 1) {
        IO.println("Très bien");
    // Ajoute ici : else if note == 2 -> "Bien"
    } else {
        IO.println("Pas mal");
    }
}
Contexte
Chaînes de else-if contre switch

Les longues chaînes de else if deviennent vite illisibles. À partir d'environ 4 cas, un switch est souvent plus clair. Depuis Java 14, il existe même des expressions switch avec la syntaxe flèche : case 1 -> "Très bien";

Le compilateur transforme un switch en table de sauts (les instructions bytecode tableswitch / lookupswitch) : avec beaucoup de cas, un switch est donc en général aussi plus rapide qu'une longue chaîne de if-else.

Assez lu. À toi de jouer.

Dans le tutoriel, tu écris le code toi-même, tu cliques sur Exécuter et tu vois tout de suite si ton programme marche. Sans JDK, sans IDE, sans prise de tête.

S'entraîner sur If-Else dans le navigateur