Menu
Coddy logo textTech

Frühe Rückgaben

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

Frühe Rückgaben sind eine Technik, bei der wir eine Methode verlassen, sobald wir die Antwort haben oder auf eine ungültige Bedingung stoßen, anstatt Bedingungen zu verschachteln.

Vergleichen wir zwei Ansätze zur Validierung eines Benutzernamens:

Ohne frühzeitige Rückgaben (verschachtelte Bedingungen):

public bool ValidateUsername(string username)
{
    bool isValid = false;
    
    if (username != null)
    {
        if (username.Length >= 3)
        {
            if (username.Length <= 20)
            {
                isValid = true;
            }
        }
    }
    
    return isValid;
}

Mit frühen Rückgaben:

public bool ValidateUsername(string username)
{
    // Return early if username is null
    if (username == null)
        return false;
        
    // Return early if username is too short
    if (username.Length < 3)
        return false;
        
    // Return early if username is too long
    if (username.Length > 20)
        return false;
        
    // If we get here, username is valid
    return true;
}

Frühe Rückgaben machen Code lesbarer und verringern die Einrückungsebenen.

challenge icon

Aufgabe

Einfach

Schreibe eine Methode namens ProcessPayment, die anhand der folgenden Bedingungen bestimmt, ob eine Zahlung verarbeitet werden kann:

  1. Der Zahlungsbetrag muss positiv sein
  2. Der Kontostand muss ausreichen
  3. Das Konto darf nicht gesperrt sein

Verwende frühe Rückgaben, um jede Bedingung zu prüfen und geeignete Fehlermeldungen zurückzugeben.

Die Methode sollte:

  • Drei Parameter übernehmen: decimal paymentAmount, decimal accountBalance und bool isAccountLocked
  • Eine Zeichenfolge mit entweder "Payment processed successfully" oder einer Fehlermeldung zurückgeben
  • Frühe Rückgaben zur Validierung verwenden

Gib Fehlermeldungen genau in diesen Formaten aus:

  • "Error: Payment amount must be positive"
  • "Error: Insufficient funds"
  • "Error: Account is locked"

Probier es selbst

using System;

public class Program
{
    public static string ProcessPayment(decimal paymentAmount, decimal accountBalance, bool isAccountLocked)
    {
        // Schreibe deinen Code hier
    }
    
    public static void Main(string[] args)
    {
        decimal paymentAmount = decimal.Parse(Console.ReadLine());
        decimal accountBalance = decimal.Parse(Console.ReadLine());
        bool isAccountLocked = bool.Parse(Console.ReadLine());
        
        string result = ProcessPayment(paymentAmount, accountBalance, isAccountLocked);
        Console.WriteLine(result);
    }
}
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