5.2 Switch Challenge
Cet exercice met en pratique l'instruction switch, cette fois avec le type char plutôt que int. L'objectif est de tester un caractère et d'afficher un message selon sa valeur.
L'énoncé
- Déclarez une variable de type
char. - Écrivez une instruction
switchtestant les valeurs'A','B','C','D'et'E'. - Pour chaque cas trouvé, affichez un message, puis terminez le cas par
break. - Ajoutez un bloc
defaultqui affiche un message indiquant que la valeur n'a pas été trouvée.
La solution
char charValue = 'A';
switch (charValue) {
case 'A':
System.out.println("A a ete trouve");
break;
case 'B':
System.out.println("B a ete trouve");
break;
case 'C':
case 'D':
case 'E':
System.out.println(charValue + " a ete trouve");
break;
default:
System.out.println(charValue + " n'a pas pu etre trouve");
break;
}
Ce qu'il faut retenir
En Java, un char est un caractère Unicode entouré de cotes simples ('A'), à ne pas confondre avec une chaîne entre guillemets doubles. Le switch accepte parfaitement le type char.
Attention à la casse : 'A' et 'a' sont deux caractères différents. Si vous testez 'a' minuscule alors que vos cas couvrent les majuscules, c'est le bloc default qui s'exécutera. Pensez aussi au break à la fin de chaque cas : sans lui, l'exécution se poursuit dans le cas suivant (effet de cascade).
En résumé
Cette leçon présente un challenge pratique sur les instructions switch en Java en utilisant le type `char` au lieu du type `int`. L'exercice consiste à créer une variable de type caractère et à tester ses différentes valeurs (a, b, c, d, e) avec un switch. La vidéo démontre le comportement du switch avec des exemples concrets, y compris l'importance de la sensibilité à la casse et l'utilisation du case default pour gérer les valeurs non prévues.
Points clés
- Utiliser le type `char` dans une instruction switch au lieu du type `int` pour tester des caractères individuels
- Les caractères dans les cases doivent être entourés de guillemets simples (apostrophes) conformément à la syntaxe Unicode Java
- Chaque case doit se terminer par un `break` pour éviter l'exécution continue (fall-through) vers les cases suivants
- Le case `default` capture les valeurs qui ne correspondent à aucun case et affiche un message par défaut
- Le switch en Java est sensible à la casse : 'a' (minuscule) et 'A' (majuscule) sont des valeurs différentes
- Tester avec différentes entrées permet de vérifier le fonctionnement correct de la structure switch
Questions fréquentes
Quelle est la différence entre un switch avec `char` et un switch avec `int` ?
Un switch avec `char` teste des caractères individuels (entourés de guillemets simples) au lieu des nombres entiers. La logique reste identique : chaque case teste une valeur spécifique et exécute le code correspondant si une correspondance est trouvée.
Pourquoi la minuscule 'a' ne correspond pas à la majuscule 'A' dans ce challenge ?
Le switch en Java est sensible à la casse. Cela signifie que 'a' (minuscule) et 'A' (majuscule) sont considérées comme des caractères différents avec des valeurs Unicode distinctes, donc elles ne déclenchent pas le même case.
Quel est le rôle du `break` à la fin de chaque case ?
Le `break` termine l'exécution du case courant et empêche le switch de continuer à exécuter le code dans les cases suivants. Sans `break`, le programme continuerait à tester les cases successifs (phénomène appelé fall-through), ce qui produit des résultats inattendus.