Menu
Coddy logo textTech

Enums deklarieren und verwenden

Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 56 von 63.

Nachdem du ein enum definiert hast, kannst du Variablen dieses Enum-Typs erstellen und ihnen aussagekräftige Werte zuweisen. Hier kommen Enumerationen wirklich zur Geltung – anstatt mit verwirrenden Zahlen zu arbeiten, verwendest du beschreibende Namen.

Um eine Variable eines Aufzählungstyps zu deklarieren, verwendest du dieselbe Syntax wie bei der Deklaration jeder anderen Variable:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Du kannst diesen Variablen dann mithilfe der benannten Konstanten aus deinem Enum Werte zuweisen:

today = WEDNESDAY;
weekend_day = SATURDAY;

Vergleiche dies mit der Verwendung roher Zahlen: today = 2; und weekend_day = 5;. Die Enum-Version zeigt dir sofort, mit welchem Tag du arbeitest, während du dir bei den Zahlen merken musst, wofür jeder Wert steht. Dadurch wird dein Code deutlich lesbarer und weniger fehleranfällig.

challenge icon

Aufgabe

Einfach

Erstelle ein C-Programm, das das Deklarieren und Verwenden von Enum-Variablen für ein einfaches Aufgabenverwaltungssystem demonstriert. Dein Programm sollte:

  1. Ein enum namens TaskStatus mit den folgenden Konstanten in genau dieser Reihenfolge definieren:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. In der Hauptfunktion:
    • Drei Variablen vom Typ enum TaskStatus mit den Namen task1, task2 und task3 deklarieren
    • Drei Ganzzahlen aus der Eingabe lesen, die den Status jeder Aufgabe darstellen (0, 1, 2 oder 3)
    • Jedem Aufgabenvariable basierend auf der Eingabe den entsprechenden Enum-Wert zuweisen:
      • Wenn die Eingabe 0 ist, PENDING zuweisen
      • Wenn die Eingabe 1 ist, IN_PROGRESS zuweisen
      • Wenn die Eingabe 2 ist, COMPLETED zuweisen
      • Wenn die Eingabe 3 ist, CANCELLED zuweisen
    • Den Status jeder Aufgabe mithilfe der Enum-Werte in genau diesem Format ausgeben:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Zählen und ausgeben, wie viele Aufgaben sich in jeder Statuskategorie befinden:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Die Gesamtzahl der aktiven Aufgaben (Aufgaben, die entweder PENDING oder IN_PROGRESS sind) berechnen und in genau diesem Format ausgeben: Active tasks: [count]

Diese Herausforderung demonstriert, wie Enum-Variablen den Code durch die Verwendung aussagekräftiger Namen anstelle von rohen Zahlen besser lesbar machen. Du übst das Deklarieren von Enum-Variablen, das Zuweisen von Enum-Werten basierend auf der Eingabe, die Verwendung von Enum-Konstanten in Vergleichen und das Durchführen von Berechnungen mit Enum-Werten.

Probier es selbst

#include <stdio.h>

// TODO: Definieren Sie hier das TaskStatus-Enum

int main() {
    // Eingabe für drei Aufgabenstatus lesen
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Deklarieren Sie drei enum TaskStatus-Variablen (task1, task2, task3)
    
    // TODO: Enum-Werte basierend auf der Eingabe zuweisen
    
    // TODO: Aufgabenstatus ausgeben
    
    // TODO: Aufgaben in jeder Kategorie zählen
    
    // TODO: Anzahl der aktiven Aufgaben berechnen und ausgeben
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C-Compiler