Menu
Coddy logo textTech

Rekursive Funktionen

Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 8 von 68.

Rekursion ist eine Programmiertechnik, bei der eine Funktion sich selbst aufruft, um ein Problem zu lösen. Dies erzeugt ein schleifenähnliches Verhalten, aber anstatt traditionelle Schleifen zu verwenden, ruft sich die Funktion wiederholt mit modifizierten Parametern selbst auf, bis sie eine Lösung erreicht.

Jede rekursive Funktion muss zwei wesentliche Komponenten haben, um korrekt zu funktionieren:

Basisfall: Dies ist die Bedingung, die die Rekursion stoppt. Ohne sie würde sich die Funktion unendlich oft selbst aufrufen, was zum Absturz Ihres Programms führen würde. Der Basisfall definiert, wann die Funktion ein Ergebnis zurückgeben soll, anstatt sich erneut selbst aufzurufen.

Rekursionsschritt: Hier ruft sich die Funktion selbst mit einer modifizierten Version des ursprünglichen Problems auf und nähert sich schrittweise dem Basisfall.

Hier ist ein einfaches Beispiel für eine rekursive Funktion, die eine Fakultät berechnet:

<?php
function factorial($n) {
    // Basisfall: Die Fakultät von 1 ist 1
    if ($n <= 1) {
        return 1;
    }
    
    // Rekursionsschritt: n! = n * (n-1)!
    return $n * factorial($n - 1);
}

echo factorial(5);  // Ausgabe: 120
?>

In diesem Beispiel ruft factorial(5) factorial(4) auf, welches factorial(3) aufruft, und so weiter, bis factorial(1) (der Basisfall) erreicht wird. Dann werden die Ergebnisse wieder nach oben multipliziert: 1 × 2 × 3 × 4 × 5 = 120.

quiz iconTeste dich selbst

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

quiz iconTeste dich selbst

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

quiz iconTeste dich selbst

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

challenge icon

Aufgabe

Einfach

Erstellen Sie eine rekursive Funktion namens sumDigits, die eine positive Ganzzahl entgegennimmt und die Summe ihrer Ziffern zurückgibt. Die Funktion sollte Rekursion verwenden, um die Zahl Ziffer für Ziffer zu zerlegen.

Sie erhalten eine Eingabe: eine positive Ganzzahl. Lesen Sie die Eingabe ein, rufen Sie Ihre rekursive Funktion mit dieser Zahl auf und geben Sie die Summe ihrer Ziffern aus.

Eingabeformat: Eine Zeile, die eine positive Ganzzahl enthält

Erwartete Ausgabe: Die Summe aller Ziffern der Zahl

Spickzettel

Rekursion ist eine Programmiertechnik, bei der eine Funktion sich selbst aufruft, um ein Problem zu lösen. Jede rekursive Funktion benötigt zwei Komponenten:

Basisfall: Die Bedingung, die die Rekursion stoppt, um Endlosschleifen zu verhindern.

Rekursionsschritt: Hier ruft sich die Funktion mit geänderten Parametern selbst auf und bewegt sich auf den Basisfall zu.

Beispiel einer rekursiven Fakultätsfunktion:

<?php
function factorial($n) {
    // Basisfall: Die Fakultät von 1 ist 1
    if ($n <= 1) {
        return 1;
    }
    
    // Rekursionsschritt: n! = n * (n-1)!
    return $n * factorial($n - 1);
}

echo factorial(5);  // Ausgabe: 120
?>

Probier es selbst

<?php
// Eingabe lesen
$number = intval(fgets(STDIN));

// TODO: Erstellen Sie hier Ihre rekursive Funktion sumDigits


// Rufen Sie die Funktion auf und geben Sie das Ergebnis aus
echo sumDigits($number);
?>
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