Menu
Coddy logo textTech

Déclarer et utiliser des énumérations

Fait partie de la section Logique & Flux 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 d’un type énuméré, vous utilisez la même syntaxe que pour déclarer toute 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 avec l’énumération vous indique immédiatement à quel jour vous travaillez, tandis qu’avec les nombres, vous devez vous souvenir de 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 en C qui montre comment déclarer et utiliser des variables d’énumération pour un système simple de gestion des tâches. Votre programme doit :

  1. Définir une enum nommée 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 saisis représentant l’état de chaque tâche (0, 1, 2 ou 3)
    • Attribuer les valeurs d’énumération correspondantes à chaque variable de tâche en fonction de la saisie :
      • Si la saisie est 0, attribuer PENDING
      • Si la saisie est 1, attribuer IN_PROGRESS
      • Si la saisie est 2, attribuer COMPLETED
      • Si la saisie est 3, attribuer CANCELLED
    • Afficher l’état de chaque tâche en utilisant les valeurs d’énumération dans ce format exact :
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Compter et afficher le nombre de tâches dans chaque catégorie d’état :
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Calculer et afficher le nombre total de tâches actives (les tâches qui sont soit PENDING, soit IN_PROGRESS) dans ce format exact : Active tasks: [count]

Ce défi montre comment les variables d’énumération rendent le code plus lisible en utilisant des noms significatifs au lieu de nombres bruts. Vous vous exercerez à déclarer des variables d’énumération, à attribuer des valeurs d’énumération en fonction de la saisie, à utiliser des constantes d’énumération dans des comparaisons et à effectuer des calculs avec des valeurs d’énumération.

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 Logique & Flux

Entraînez-vous par vous-même : Compilateur C en ligne