5.1 Switch
Dans ce cours, nous allons découvrir l'instruction switch en Java et apprendre comment l'utiliser. Ouvrons IntelliJ et créons un nouveau projet pour commencer la démonstration.
Reprenons d'abord un exemple avec if. On déclare int value = 1. Si value == 1, on affiche « La valeur est 1 ». Sinon, si value == 2, on affiche « La valeur est 2 ». Sinon, on affiche « La valeur n'est pas 1 ou 2 ». En exécutant le programme, on obtient la phrase du if. Si on change la valeur à 2, on obtient la phrase du else if.
Ce style devient vite désordonné lorsque l'on doit tester dix valeurs ou plus. Il existe une alternative : l'instruction switch. On va écrire quelque chose d'équivalent à l'exemple précédent en utilisant un switch. On déclare int switchvalue = 1, puis on ouvre un bloc switch (switchvalue). Chaque case correspond à un test : case 1 équivaut à if (value == 1). On affiche « La valeur est 1 », puis on écrit break : cette instruction permet au programme de sortir du switch. On fait la même chose pour case 2, et on ajoute un bloc default, qui joue le rôle du else et affiche « La valeur n'est pas 1 ou 2 ».
Exemple d'instruction switch
int switchvalue = 1;
switch (switchvalue) {
case 1:
System.out.println("La valeur est 1");
break;
case 2:
System.out.println("La valeur est 2");
break;
default:
System.out.println("La valeur n'est pas 1 ou 2");
}
On peut commenter la cascade de if en haut, on n'en a plus besoin. À l'exécution, on voit que la valeur est bien 1, et si on change switchvalue à 2, le résultat affiché est 2. Dans la prochaine vidéo, nous ferons un petit exercice sur le switch pour bien maîtriser cette instruction. À la prochaine !
En résumé
Cette leçon introduit la structure switch en Java comme alternative aux instructions if...else if...else multiples. Elle montre comment utiliser switch avec des cas (case) pour tester différentes valeurs d'une variable, et explique le rôle de break pour sortir de la structure et du bloc default pour gérer les cas non prévus. Des exemples concrets en IntelliJ démontrent l'équivalence entre les deux approches et la meilleure organisation du code avec switch.
Points clés
- La structure switch offre une alternative plus lisible et organisée aux if...else if...else chaînés, particulièrement avec plusieurs conditions à tester
- Syntaxe clé : case valeur: pour chaque cas, break; pour sortir, et default: comme cas par défaut (équivalent du else final)
- L'instruction break est critique : elle empêche l'exécution de continuer vers les cas suivants après une correspondance
- Utiliser switch améliore la lisibilité du code, surtout quand il y a 10 valeurs ou plus à tester
- Le bloc default capture tous les cas non explicitement gérés par les case
- Switch teste l'égalité stricte (contrairement aux conditions complexes possibles avec if)
Questions fréquentes
Quelle est la différence entre switch et une série de if...else if ?
Switch est plus lisible et organisé quand il faut tester plusieurs valeurs discrètes d'une même variable. Alors qu'if...else if permet des conditions complexes, switch teste uniquement l'égalité. Avec 10 valeurs à tester, switch est nettement plus propre et facile à maintenir.
Quel est le rôle de l'instruction break dans un switch ?
L'instruction break; termine l'exécution du bloc switch dès qu'un case correspond. Sans break, l'exécution continuerait vers les case suivants (appelé fall-through), ce qui causerait des résultats inattendus.
Que se passe-t-il si aucun case ne correspond à la valeur testée ?
Le bloc default s'exécute, fonctionnant exactement comme un else final dans une chaîne if...else if. C'est l'occasion de gérer tous les cas non explicitement prévus par les case.