Menu
Coddy logo textTech

Verschachtelte Bedingungen abflachen

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 22 von 66.

Verschachtelte Bedingungen können Ihren Code schwer lesbar und wartbar machen. Das Flachmachen verbessert die Lesbarkeit, indem die Einrückungsebenen reduziert werden.

Hier ist ein Beispiel für tief verschachtelte Bedingungen:

if (userLoggedIn)
{
    if (userHasPermission)
    {
        if (fileExists)
        {
            // Die Datei verarbeiten
            ProcessFile();
        }
        else
        {
            Console.WriteLine("File not found");
        }
    }
    else
    {
        Console.WriteLine("No permission");
    }
}
else
{
    Console.WriteLine("Not logged in");
}

Wir können dies mithilfe von frühzeitigen Rückgaben oder Schutzklauseln vereinfachen:

if (!userLoggedIn)
{
    Console.WriteLine("Not logged in");
    return;
}

if (!userHasPermission)
{
    Console.WriteLine("No permission");
    return;
}

if (!fileExists)
{
    Console.WriteLine("File not found");
    return;
}

// Datei verarbeiten
ProcessFile();

Beachten Sie, wie der abgeflachte Code weniger Einrückungen hat und leichter zu folgen ist.

challenge icon

Aufgabe

Einfach

Bei der Prüfung der Stipendienberechtigung machen tief verschachtelte Bedingungen den Code schwer lesbar und wartbar. In dieser Aufgabe wandelst du eine unübersichtliche Struktur mit verschachtelten Bedingungen mithilfe von Guard Clauses in übersichtlichen, lesbaren Code um.

Eine Guard Clause ist eine Anweisung zur sofortigen Rückgabe, die eine bestimmte Bedingung direkt behandelt und es dem Rest der Funktion ermöglicht, sich auf den „Happy Path“ zu konzentrieren.

Deine Aufgabe besteht darin, die teilweise implementierten Guard Clauses in der Methode CheckScholarshipEligibility gemäß den folgenden Regeln zu vervollständigen:

  1. Wenn das Alter kleiner als 17 ist, gib sofort „Not eligible due to age requirement“ zurück
  2. Wenn GPA ≥ 3.5 ist UND der Student eine Empfehlung hat, gewähre ein Vollstipendium
  3. Wenn GPA ≥ 3.8 ist, gewähre ein Vollstipendium (auch ohne Empfehlung)
  4. Wenn GPA ≥ 3.0 ist UND der Student eine Empfehlung hat, gewähre ein Teilstipendium
  5. Wenn GPA zwischen 3.5 und 3.8 liegt, gewähre ein Teilstipendium
  6. Gib in allen anderen Fällen „Not eligible for scholarship“ zurück

Probier es selbst

using System;

class Program
{
    public static void CheckScholarshipEligibility(int age, double gpa, bool hasRecommendation)
    {
        // Schutzklausel für Altersanforderung
        if (age < 17)
        {
            Console.WriteLine("Not eligible due to age requirement.");
            return;
        }
        
        // Schutzklausel für Vollstipendium mit Empfehlung
        if (/* Vervollständige diese Bedingung */)
        {
            Console.WriteLine("Full scholarship granted!");
            return;
        }
        
        // Schutzklausel für Vollstipendium mit außergewöhnlichem GPA
        if (/* Vervollständige diese Bedingung */)
        {
            Console.WriteLine("Full scholarship granted!");
            return;
        }
        
        // Schutzklausel für Teilstipendium mit Empfehlung
        if (/* Vervollständige diese Bedingung */)
        {
            Console.WriteLine("Partial scholarship granted.");
            return;
        }
        
        // Schutzklausel für Teilstipendium mit gutem GPA
        if (/* Vervollständige diese Bedingung */)
        {
            Console.WriteLine("Partial scholarship granted.");
            return;
        }
        
        // Standardfall: nicht berechtigt
        Console.WriteLine("Not eligible for scholarship.");
    }
    
    static void Main(string[] args)
    {
        // Testfälle für sofortiges Feedback
        Console.WriteLine("Test Case 1: Age 16, GPA 4.0, Has Recommendation: True");
        CheckScholarshipEligibility(16, 4.0, true);
        
        Console.WriteLine("\nTest Case 2: Age 18, GPA 3.9, Has Recommendation: False");
        CheckScholarshipEligibility(18, 3.9, false);
        
        Console.WriteLine("\nTest Case 3: Age 17, GPA 3.6, Has Recommendation: True");
        CheckScholarshipEligibility(17, 3.6, true);
        
        Console.WriteLine("\nTest Case 4: Age 19, GPA 3.2, Has Recommendation: True");
        CheckScholarshipEligibility(19, 3.2, true);
        
        Console.WriteLine("\nTest Case 5: Age 18, GPA 2.8, Has Recommendation: False");
        CheckScholarshipEligibility(18, 2.8, false);
    }
}
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