Menu
CoddyTech

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ühe 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 vorzeitigen Rückgaben:

public bool ValidateUsername(string username)
{
    // Vorzeitig zurückkehren, wenn username null ist
    if (username == null)
        return false;
        
    // Vorzeitig zurückkehren, wenn username zu kurz ist
    if (username.Length < 3)
        return false;
        
    // Vorzeitig zurückkehren, wenn username zu lang ist
    if (username.Length > 20)
        return false;
        
    // Wenn wir hier ankommen, ist username gültig
    return true;
}

Frühe Rückgaben machen den 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 vorzeitige Rückgaben, um jede Bedingung zu prüfen und die entsprechenden Fehlermeldungen zurückzugeben.

Die Methode sollte:

  • Drei Parameter entgegennehmen: decimal paymentAmount, decimal accountBalance und bool isAccountLocked
  • Eine Zeichenfolge zurückgeben, die entweder "Payment processed successfully" oder eine Fehlermeldung enthält
  • Vorzeitige 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