Menu
Coddy logo textTech

Declarando e Usando Enums

Parte da seção Lógica e Fluxo do Journey de C da Coddy. Lição 56 de 63.

Agora que você definiu um enum, pode criar variáveis desse tipo de enum e atribuir a elas valores significativos. É aqui que os enums realmente se destacam — em vez de trabalhar com números confusos, você usa nomes descritivos.

Para declarar uma variável de um tipo enum, você usa a mesma sintaxe de declarar qualquer outra variável:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Você pode então atribuir valores a essas variáveis usando as constantes nomeadas do seu enum:

today = WEDNESDAY;
weekend_day = SATURDAY;

Compare isso ao uso de números brutos: today = 2; e weekend_day = 5;. A versão com enum informa imediatamente com qual dia você está trabalhando, enquanto os números exigem que você se lembre do que cada valor representa. Isso torna seu código muito mais legível e menos propenso a erros.

challenge icon

Desafio

Fácil

Crie um programa em C que demonstre a declaração e o uso de variáveis enum para um sistema simples de gerenciamento de tarefas. Seu programa deve:

  1. Definir um enum chamado TaskStatus com as seguintes constantes nesta ordem exata:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. Na função principal:
    • Declarar três variáveis do tipo enum TaskStatus chamadas task1, task2 e task3
    • Ler três números inteiros da entrada representando o status de cada tarefa (0, 1, 2 ou 3)
    • Atribuir os valores enum correspondentes a cada variável de tarefa com base na entrada:
      • Se a entrada for 0, atribua PENDING
      • Se a entrada for 1, atribua IN_PROGRESS
      • Se a entrada for 2, atribua COMPLETED
      • Se a entrada for 3, atribua CANCELLED
    • Imprimir o status de cada tarefa usando os valores enum neste formato exato:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Contar e imprimir quantas tarefas estão em cada categoria de status:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Calcular e imprimir o número total de tarefas ativas (tarefas que estão como PENDING ou IN_PROGRESS) neste formato exato: Active tasks: [count]

Este desafio demonstra como as variáveis enum tornam o código mais legível ao usar nomes significativos em vez de números brutos. Você praticará a declaração de variáveis enum, a atribuição de valores enum com base na entrada, o uso de constantes enum em comparações e a realização de cálculos com valores enum.

Experimente você mesmo

#include <stdio.h>

// TODO: Defina o enum TaskStatus aqui

int main() {
    // Lê a entrada para três status de tarefa
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Declare três variáveis enum TaskStatus (task1, task2, task3)
    
    // TODO: Atribua valores ao enum com base na entrada
    
    // TODO: Imprima os status das tarefas
    
    // TODO: Conte as tarefas em cada categoria
    
    // TODO: Calcule e imprima a contagem de tarefas ativas
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de C online