C-SHARP - 3.15 Enum (Démo)
Petit exercice rapide pour mettre en pratique la notion d'énumération. Objectif : selon la valeur stockée dans une variable jour de type JoursSemaines, le programme doit afficher « C'est le week-end, on est… » si le jour est samedi ou dimanche, sinon « C'est la semaine, on est… ». Le programme doit s'adapter automatiquement à la constante choisie, en utilisant impérativement l'énumération définie précédemment.
La logique de la condition
La première constante de l'énumération a été initialisée à 1, donc Lundi = 1, Mardi = 2, …, Vendredi = 5, Samedi = 6, Dimanche = 7. La règle est alors simple : si la valeur de la constante est strictement supérieure à 5, on est en week-end. Pour comparer une constante d'énumération à un entier, il faut forcer la conversion via un cast en int.
La correction complète
if ((int)jour > 5)
{
Console.WriteLine(string.Format("C'est le week-end, on est {0}", jour));
}
else
{
Console.WriteLine("C'est la semaine, on est " + jour);
}
Deux styles d'affichage sont utilisés volontairement pour réviser les notions. Le if emploie string.Format avec un placeholder {0} remplacé par la variable jour. Le else utilise la concaténation classique avec l'opérateur +. Dans les deux cas, jour affiche directement le nom de la constante (Samedi, Mercredi…).
Tests et bonnes pratiques d'affichage
Si jour = JoursSemaines.Samedi, la valeur vaut 6 et la condition > 5 est vraie : on affiche « C'est le week-end, on est Samedi ». Avec Dimanche, même résultat. Avec Mercredi (valeur 3), la condition est fausse, on bascule dans le else qui affiche « C'est la semaine, on est Mercredi ».
Petite recommandation pour conclure : préférez string.Format à la concaténation. C'est plus lisible, plus sûr, et on visualise mieux la sortie. La concaténation fonctionne, mais on est moins certain du rendu final lorsque le message devient complexe.