Javascript Rekursion – Die Spitze der Funktionsaufrufe

09.01.2017 10:31 Uhr

Da nun bereits alle Themen grundsätzlich besprochen sind, die zur Aufarbeitung der begleitenden Aufgabe notwendig sind, können wir die Zeit für die Wiederholung eventuell nicht verstandener Inhalte nutzen. Eines davon ist die Javascript Rekursion. Grundsätzlich gibt es eine Rekursion in praktisch jeder Programmiersprache, die den Einsatz von Funktionen erlaubt. Bevor wir allerdings zur Javascript Rekursion kommen, braucht es ein paar Schritte. 

Eine einfache Funktion

Zuerst einmal schauen wir uns Funktionen allgemein an. Eine Funktion besteht aus einem Funktionsnamen, der auch zum Aufruf genutzt wird. Außerdem können in den Klammern nach dem Funktionsnamen mögliche Parameter übergeben werden. Innerhalb der geschweiften Klammern sind die Befehle zu finden, die innerhalb der Funktion verarbeitet werden. Der Rückgabewert einer Funktion wird per return zurückgegeben. Der gesamte Funktionsaufruf nimmt im Aufruf den Wert des Rückgabewerts an. Das folgende Beispiel soll das erläutern:

function addiere( zahl1, zahl2 ) {
    var ergebnis = zahl1 + zahl2;
    return ergebnis;
}
			
alert( addiere(4,7) );

Eine Funktion ruft eine andere auf

Eine bereits definierte Funktion kann auch aus einer anderen Funktion aufrufen.

function addiere( zahl1, zahl2 ) {
    var ergebnis = zahl1 + zahl2;
    return ergebnis;
}

function rechne( zahl3, zahl4 ) {
    var ergebnis = addiere( zahl3, zahl4 );
    return ergebnis;
}
			
alert( rechne(5,9) );

Es ist zu beachten, dass die Parameter und Variablen, die innerhalb einer Funktion definiert werden, auch nur genau für diesen Funktionsaufruf gültig sind. So ist die Variable „ergebnis“ in den Funktionen jeweils eine unterschiedliche, auch wenn sie gleich benannt ist.

Javascript Rekursion – Eine Funktion ruft sich selbst auf

So kann eine Funktion auch sich selbst aufrufen. Das folgende Beispiel ruft beim Benutzer zwei Zahlen per „prompt“ ab und gibt diese an die Funkton „nehmehoch“. Die Funktion nehmehoch potentiert die Zahl mit sich selbst so häufig wie angegeben, indem sie die Multiplikation immer wieder aufruft und die Potenz dabei um eins subtrahiert. Sobald der Wert „0“ erreicht ist, wird „1“ zurückgegeben und die Rekursionskette kollabiert. Der letzte Rückgabewert ist das Ergebnis der Potenzrechnung.

var meinezahl = parseInt( prompt("Zahl:") );
var meinepot = parseInt( prompt("Potenz:") );

function nehmehoch( zahl, pot ) {
    if (pot > 0) {
        return zahl * nehmehoch(zahl, pot - 1);
    } else {
        return 1;
    }
}

alert( nehmehoch(meinezahl,meinepot) );