Menu
Coddy logo textTech

Déclarer et utiliser des énumérations

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 56 sur 63.

Maintenant que vous avez défini un enum, vous pouvez créer des variables de ce type d'énumération et leur assigner des valeurs significatives. C'est là que les énumérations brillent vraiment : au lieu de travailler avec des nombres déroutants, vous utilisez des noms descriptifs.

Pour déclarer une variable de type enum, vous utilisez la même syntaxe que pour déclarer n'importe quelle autre variable :

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Vous pouvez ensuite affecter des valeurs à ces variables en utilisant les constantes nommées de votre énumération :

today = WEDNESDAY;
weekend_day = SATURDAY;

Comparez cela à l'utilisation de nombres bruts : today = 2; et weekend_day = 5;. La version enum vous indique immédiatement avec quel jour vous travaillez, tandis que les nombres vous obligent à vous rappeler ce que chaque valeur représente. Cela rend votre code beaucoup plus lisible et moins sujet aux erreurs.

challenge icon

Défi

Facile

Créez un programme C qui démontre la déclaration et l'utilisation de variables enum pour un système simple de gestion de tâches. Votre programme doit :

  1. Définir un enum nommé TaskStatus avec les constantes suivantes dans cet ordre exact :
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. Dans la fonction main :
    • Déclarer trois variables de type enum TaskStatus nommées task1, task2 et task3
    • Lire trois entiers à partir de l'entrée représentant le statut de chaque tâche (0, 1, 2 ou 3)
    • Attribuer les valeurs enum correspondantes à chaque variable de tâche en fonction de l'entrée :
      • Si l'entrée est 0, attribuer PENDING
      • Si l'entrée est 1, attribuer IN_PROGRESS
      • Si l'entrée est 2, attribuer COMPLETED
      • Si l'entrée est 3, attribuer CANCELLED
    • Afficher le statut de chaque tâche en utilisant les valeurs enum dans ce format exact :
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Compter et afficher combien de tâches sont dans chaque catégorie de statut :
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Calculer et afficher le nombre total de tâches actives (tâches qui sont soit PENDING soit IN_PROGRESS) dans ce format exact : Active tasks: [count]

Ce défi démontre comment les variables enum rendent le code plus lisible en utilisant des noms significatifs au lieu de nombres bruts. Vous vous entraînerez à déclarer des variables enum, à attribuer des valeurs enum basées sur l'entrée, à utiliser des constantes enum dans des comparaisons et à effectuer des calculs avec des valeurs enum.

Aide-mémoire

Pour déclarer des variables d'un type enum, utilisez la même syntaxe que pour déclarer n'importe quelle autre variable :

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Attribuez des valeurs aux variables enum en utilisant les constantes nommées de votre enum :

today = WEDNESDAY;
weekend_day = SATURDAY;

L'utilisation de noms d'enum au lieu de nombres bruts rend le code plus lisible et moins sujet aux erreurs. Comparez today = WEDNESDAY; avec today = 2; - la version enum montre immédiatement avec quel jour vous travaillez.

Essayez vous-même

#include <stdio.h>

// TODO: Définir l'énumération TaskStatus ici

int main() {
    // Lire l'entrée pour trois statuts de tâche
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Déclarer trois variables d'énumération TaskStatus (task1, task2, task3)
    
    // TODO: Assigner les valeurs de l'énumération en fonction de l'entrée
    
    // TODO: Afficher les statuts des tâches
    
    // TODO: Compter les tâches dans chaque catégorie
    
    // TODO: Calculer et afficher le nombre de tâches actives
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow