Leçon 11 : Contrôle de flux avancé : L'instruction switch
L'instruction switch est une alternative aux longues structures if-else if lors de la comparaison d'une seule variable par rapport à plusieurs valeurs constantes potentielles.
1. Syntaxe traditionnelle du switch
Java utilise des étiquettes case pour définir les valeurs possibles et le mot-clé break pour quitter la structure.
java int dayOfWeek = 3; // Mercredi String dayName;
switch (dayOfWeek) { case 1: dayName = "Lundi"; break; case 2: dayName = "Mardi"; break; case 3: dayName = "Mercredi"; break; default: dayName = "Jour inconnu"; // Pas de break nécessaire ici car c'est le dernier cas }
System.out.println(dayName); // Sortie : Mercredi
Le mot-clé break : Fall-through
Si vous omettez l'instruction break, l'exécution se poursuivra sur le case suivant, ce qui est généralement indésirable.
2. Expressions switch modernes (JDK 14+)
Le Java moderne a introduit les expressions switch utilisant la notation fléchée (->), qui gère automatiquement le break et peut retourner une valeur directement.
java int month = 7;
// Switch utilisé comme une expression qui retourne une valeur String season = switch (month) { case 12, 1, 2 -> "Hiver"; case 3, 4, 5 -> "Printemps"; case 6, 7, 8 -> "Été"; case 9, 10, 11 -> "Automne"; default -> { // Pour les cas multi-instructions, utilisez 'yield' System.out.println("Entrée de mois invalide."); yield "Inconnu"; } };
System.out.println(season); // Sortie : Été
Meilleure pratique : Utilisez toujours la syntaxe d'expression switch moderne (->) si votre version du JDK le permet, car elle est plus propre et moins sujette aux erreurs.