Recursieve functie

Een recursieve functie is een functie die zichzelf aanroept.

Een voorbeeld van een recursieve functie is deze:

<?php
function faculteit( $n ) {
    if ($n == 0 || $n== 1) { // stoppen indien $n == 0 of $n == 1
        return 1;
    } else { // De volgende regel bevat de recursieve oproep
        return ( $n * faculteit($n-1));
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Functies</title>
</head>
<body>
  <p>De faculteit van 5 is <?php print faculteit(5); ?>.</p>
</body>
</html>

Bij de aanroep van deze functie wordt er eerst gecontroleerd of het getal nul of 1 is. Indien dit zo is, wordt de berekening afgebroken.

Indien het getal niet nul of 1 is, wordt de berekening $n * faculteit($n -1) berekend. M.a.w. De functie faculteit wordt gebruikt vanuit de functie faculteit (recursie).

Deze bewerking gaat door tot de waarde in $n 1 wordt, waardoor de functie faculteit wordt verlaten en waarde 1 wordt teruggeven aan de oproepende bewerking (eveneens in de functie faculteit). M.a.w. de weg wordt in omgekeerde volgorde terug afgelopen ($n stijgt daarbij terug naar de oorspronkelijke waarde).

Met andere woorden de faculteit van 5 bereken is eigenlijk 5 * 4 * 3 * 1.

Let op bij recursieve functies, dat je deze wel weer moet kunnen verlaten.

Weergeven