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.