Menu
Coddy logo textTech

Declaración y uso de enums

Parte de la sección Logic & Flow del Journey de C de Coddy — lección 56 de 63.

Ahora que has definido un enum, puedes crear variables de ese tipo enum y asignarles valores significativos. Aquí es donde los enums realmente brillan: en lugar de trabajar con números confusos, utilizas nombres descriptivos.

Para declarar una variable de un tipo enum, se utiliza la misma sintaxis que para declarar cualquier otra variable:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Luego puedes asignar valores a estas variables utilizando las constantes con nombre de tu enum:

today = WEDNESDAY;
weekend_day = SATURDAY;

Compara esto con el uso de números puros: today = 2; y weekend_day = 5;. La versión de enum te indica inmediatamente con qué día estás trabajando, mientras que los números requieren que recuerdes qué representa cada valor. Esto hace que tu código sea mucho más legible y menos propenso a errores.

challenge icon

Desafío

Fácil

Crea un programa en C que demuestre la declaración y el uso de variables enum para un sistema simple de gestión de tareas. Tu programa debe:

  1. Definir un enum llamado TaskStatus con las siguientes constantes en este orden exacto:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. En la función main:
    • Declarar tres variables de tipo enum TaskStatus llamadas task1, task2 y task3
    • Leer tres números enteros de la entrada que representen el estado de cada tarea (0, 1, 2 o 3)
    • Asignar los valores enum correspondientes a cada variable de tarea basándose en la entrada:
      • Si la entrada es 0, asignar PENDING
      • Si la entrada es 1, asignar IN_PROGRESS
      • Si la entrada es 2, asignar COMPLETED
      • Si la entrada es 3, asignar CANCELLED
    • Imprimir el estado de cada tarea utilizando los valores enum en este formato exacto:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Contar e imprimir cuántas tareas hay en cada categoría de estado:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Calcular e imprimir el número total de tareas activas (tareas que están en PENDING o IN_PROGRESS) en este formato exacto: Active tasks: [count]

Este desafío demuestra cómo las variables enum hacen que el código sea más legible al usar nombres significativos en lugar de números brutos. Practicarás la declaración de variables enum, la asignación de valores enum basados en la entrada, el uso de constantes enum en comparaciones y la realización de cálculos con valores enum.

Hoja de referencia

Para declarar variables de un tipo enum, utiliza la misma sintaxis que para declarar cualquier otra variable:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Asigna valores a las variables enum utilizando las constantes con nombre de tu enum:

today = WEDNESDAY;
weekend_day = SATURDAY;

El uso de nombres de enum en lugar de números brutos hace que el código sea más legible y menos propenso a errores. Compara today = WEDNESDAY; con today = 2;: la versión enum muestra inmediatamente con qué día estás trabajando.

Pruébalo tú mismo

#include <stdio.h>

// TODO: Definir el enum TaskStatus aquí

int main() {
    // Leer la entrada para tres estados de tarea
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Declarar tres variables enum TaskStatus (task1, task2, task3)
    
    // TODO: Asignar valores de enum basados en la entrada
    
    // TODO: Imprimir los estados de las tareas
    
    // TODO: Contar tareas en cada categoría
    
    // TODO: Calcular e imprimir el recuento de tareas activas
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow