Retour au cours

Contrôle de flux avancé : L'instruction switch (et expressions modernes)

Maîtrise de Java : De Zéro à Développeur Professionnel (Un parcours en 50 leçons)

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.