Menu
Coddy logo textTech

Enums deklarieren und verwenden

Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 56 von 63.

Nachdem Sie ein enum definiert haben, können Sie Variablen dieses Enum-Typs erstellen und ihnen aussagekräftige Werte zuweisen. Hier spielen Enums ihre Stärken aus – anstatt mit verwirrenden Zahlen zu arbeiten, verwenden Sie beschreibende Namen.

Um eine Variable eines Enum-Typs zu deklarieren, verwenden Sie dieselbe Syntax wie bei der Deklaration jeder anderen Variable:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Sie können diesen Variablen dann Werte unter Verwendung der benannten Konstanten aus Ihrem Enum zuweisen:

today = WEDNESDAY;
weekend_day = SATURDAY;

Vergleichen Sie dies mit der Verwendung von reinen Zahlen: today = 2; und weekend_day = 5;. Die Enum-Version verrät Ihnen sofort, mit welchem Tag Sie arbeiten, während die Zahlen von Ihnen verlangen, sich zu merken, was jeder Wert bedeutet. Dies macht Ihren Code viel lesbarer und weniger anfällig für Fehler.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein C-Programm, das die Deklaration und Verwendung von Enum-Variablen für ein einfaches Aufgabenverwaltungssystem demonstriert. Ihr Programm sollte:

  1. Ein enum namens TaskStatus mit den folgenden Konstanten in genau dieser Reihenfolge definieren:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. In der main-Funktion:
    • Drei Variablen vom Typ enum TaskStatus namens task1, task2 und task3 deklarieren
    • Drei Ganzzahlen von der Eingabe lesen, die den Status jeder Aufgabe repräsentieren (0, 1, 2 oder 3)
    • Jedem Aufgaben-Variable basierend auf der Eingabe die entsprechenden Enum-Werte zuweisen:
      • Wenn die Eingabe 0 ist, weisen Sie PENDING zu
      • Wenn die Eingabe 1 ist, weisen Sie IN_PROGRESS zu
      • Wenn die Eingabe 2 ist, weisen Sie COMPLETED zu
      • Wenn die Eingabe 3 ist, weisen Sie CANCELLED zu
    • Den Status jeder Aufgabe unter Verwendung 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 in jeder Statuskategorie sind:
      • 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 zeigt, wie Enum-Variablen den Code lesbarer machen, indem sie aussagekräftige Namen anstelle von reinen Zahlen verwenden. Sie üben das Deklarieren von Enum-Variablen, das Zuweisen von Enum-Werten basierend auf Eingaben, die Verwendung von Enum-Konstanten in Vergleichen und das Durchführen von Berechnungen mit Enum-Werten.

Spickzettel

Um Variablen eines Enum-Typs zu deklarieren, verwenden Sie dieselbe Syntax wie bei der Deklaration jeder anderen Variable:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Weisen Sie Enum-Variablen Werte unter Verwendung der benannten Konstanten aus Ihrem Enum zu:

today = WEDNESDAY;
weekend_day = SATURDAY;

Die Verwendung von Enum-Namen anstelle von reinen Zahlen macht den Code lesbarer und weniger fehleranfällig. Vergleichen Sie today = WEDNESDAY; mit today = 2; – die Enum-Version zeigt sofort, mit welchem Tag Sie arbeiten.

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