Menu
Coddy logo textTech

Declarando e Usando Enums

Parte da seção Logic & Flow do Journey de C da Coddy — lição 56 de 63.

Agora que você definiu um enum, você pode criar variáveis desse tipo enum e atribuir a elas valores significativos. É aqui que os enums realmente brilham - 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 que usaria para 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 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.

Folha de consulta

Para declarar variáveis de um tipo enum, use a mesma sintaxe que a declaração de qualquer outra variável:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Atribua valores a variáveis enum usando as constantes nomeadas do seu enum:

today = WEDNESDAY;
weekend_day = SATURDAY;

Usar nomes de enum em vez de números brutos torna o código mais legível e menos propenso a erros. Compare today = WEDNESDAY; com today = 2; - a versão enum mostra imediatamente com qual dia você está trabalhando.

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 Logic & Flow