En Java, l’instruction switch est une structure de contrôle utilisée pour prendre des décisions basées sur la valeur d’une expression. Elle offre une alternative élégante aux longues listes d’instructions if-else. L’instruction switch évalue une expression et compare sa valeur à une série de cas possibles. Selon la correspondance trouvée, un bloc de code spécifique est exécuté.
La syntaxe générale de l’instruction switch en Java est la suivante :

La solution définitive pour raccourcir les liens et gérer vos campagnes digitales de manière professionnelle.
• Raccourcissement instantané et rapide des liens
• Pages de profil interactives
• Codes QR professionnels
• Analyses détaillées de vos performances digitales
• Et bien plus de fonctionnalités gratuites !
javaswitch (expression) {
case valeur1:
// Bloc de code à exécuter si l'expression correspond à valeur1
break;
case valeur2:
// Bloc de code à exécuter si l'expression correspond à valeur2
break;
// Autres cas possibles
default:
// Bloc de code à exécuter si l'expression ne correspond à aucun des cas précédents
}
Passons en revue les éléments clés de cette syntaxe :
- Le mot-clé
switch
marque le début de l’instruction switch. - L’expression entre parenthèses après le mot-clé
switch
est évaluée. Cette expression doit être de typeint
,char
,String
ou une énumération. - À l’intérieur des accolades
{}
, on trouve une série de blocscase
, chacun associé à une valeur spécifique que peut prendre l’expression évaluée. - Si la valeur de l’expression correspond à l’une des valeurs spécifiées après le mot-clé
case
, le bloc de code associé à cecase
est exécuté. La comparaison est faite en utilisant l’opérateur d’égalité==
. - Chaque bloc
case
est suivi du mot-clébreak
, qui indique à Java de sortir de l’instruction switch une fois que le bloc de code correspondant a été exécuté. Si lebreak
est omis, l’exécution continuera au bloc suivant, ce qui peut entraîner un comportement inattendu. - Le bloc
default
est optionnel. Il est exécuté si aucun des cas précédents ne correspond à la valeur de l’expression. Comme pour les autres cas, il est suivi d’unbreak
.
Voici un exemple concret pour illustrer l’utilisation de l’instruction switch en Java :
javaint jour = 3;
String nomJour;
switch (jour) {
case 1:
nomJour = "Lundi";
break;
case 2:
nomJour = "Mardi";
break;
case 3:
nomJour = "Mercredi";
break;
case 4:
nomJour = "Jeudi";
break;
case 5:
nomJour = "Vendredi";
break;
case 6:
nomJour = "Samedi";
break;
case 7:
nomJour = "Dimanche";
break;
default:
nomJour = "Jour invalide";
}
System.out.println("Le jour numéro " + jour + " correspond à : " + nomJour);
Dans cet exemple, selon la valeur de la variable jour
, le programme attribue à la variable nomJour
le nom correspondant au jour de la semaine. Le résultat de l’exécution serait : « Le jour numéro 3 correspond à : Mercredi ».
Il convient de noter que l’instruction switch peut être utilisée avec différents types de données, mais elle est souvent utilisée avec des types primitifs tels que int
et char
, ainsi qu’avec des objets immuables tels que String
.
Plus de connaissances
Bien sûr, plongeons un peu plus en détail dans l’instruction switch en Java.
-
Types de données compatibles :
L’expression dans une instruction switch peut être de typeint
,char
,String
, ou une énumération. À partir de Java 7, il est également possible d’utiliser des expressions de typebyte
,short
, ouInteger
, ainsi que des constantes de typeenum
. Cela offre une flexibilité accrue dans l’utilisation de l’instruction switch. -
Comparaison de valeurs :
La comparaison des valeurs dans une instruction switch est basée sur l’opérateur d’égalité==
. Cela signifie que les valeurs dans les blocscase
doivent correspondre exactement à la valeur de l’expression pour qu’un bloc de code spécifique soit exécuté. Il n’est pas possible d’utiliser des opérateurs de comparaison tels que<
ou>
dans les cas. -
Ordre des cas et absence de duplication :
Dans une instruction switch, chaque cas doit être unique. Cela signifie qu'il ne peut y avoir de duplication de valeurs entre les différents blocscase
. De plus, l'ordre des cas est important. Java évalue les cas dans l'ordre où ils apparaissent et exécute le premier bloc dont la valeur correspond à celle de l'expression. -
Utilisation de break et fall-through :
Le mot-clébreak
est utilisé pour terminer l'exécution de l'instruction switch après l'exécution du bloc correspondant. Sans lebreak
, l'exécution continuera au bloc suivant, un phénomène appelé "fall-through". Bien que parfois utilisé de manière intentionnelle, le fall-through est souvent considéré comme une source d'erreurs et est généralement évité. Il est recommandé d'inclure unbreak
à la fin de chaque bloccase
pour éviter tout comportement inattendu. -
L'instruction default :
L'instructiondefault
est facultative et agit comme une alternative aux blocscase
lorsque aucun des cas précédents ne correspond à la valeur de l'expression. Elle est souvent utilisée pour gérer les cas non pris en charge ou pour fournir une valeur par défaut. L'instructiondefault
est placée à la fin de l'instruction switch, bien que son emplacement n'ait pas d'impact sur son fonctionnement. -
Exemple d'utilisation avancée :
En plus des types primitifs et des chaînes de caractères, l'instruction switch peut également être utilisée avec des énumérations, offrant ainsi un moyen élégant de gérer les types de données personnalisés. Voici un exemple d'utilisation d'une énumération avec switch :
javaenum Saison { PRINTEMPS, ÉTÉ, AUTOMNE, HIVER }
Saison saison = Saison.PRINTEMPS;
switch (saison) {
case PRINTEMPS:
System.out.println("C'est le printemps !");
break;
case ÉTÉ:
System.out.println("C'est l'été !");
break;
case AUTOMNE:
System.out.println("C'est l'automne !");
break;
case HIVER:
System.out.println("C'est l'hiver !");
break;
}
Dans cet exemple, l'instruction switch est utilisée avec une énumération Saison
, ce qui rend le code plus lisible et plus sûr, car toutes les valeurs possibles sont explicitement définies dans l'énumération.
En résumé, l'instruction switch en Java est une structure de contrôle polyvalente et efficace pour prendre des décisions basées sur la valeur d'une expression. Elle offre une alternative propre et concise aux longues séquences d'instructions if-else, tout en améliorant la lisibilité et la maintenabilité du code.