Die Aufgabe
Aufgabe 4
Gegeben ist die folgende, rekursive Methode „mehrfachMult“:
public static int mehrfachMult(int a, int b) { int ergebnis = 1; if (b > 0) { ergebnis = a * mehrfachMult(a, b - 1); } return ergebnis; }Es soll ermittelt werden, was die Methode tut, wenn Sie mit folgenden Argumenten aufgerufen wird: mehrfachMult(2, 3);
Geben Sie hierzu in folgender Tabelle für jeden Aufruf von „mehrfachMult“ an, welche Parameterwerte übergeben werden, welche Werte die Variablen innerhalb der Methode zugewiesen bekommen, was die Methode zurückgibt, und mit welchem Argument die Methode ggf. erneut aufgerufen wird.
Eventuell können Sie manche Werte erst eintragen, wenn Sie Einträge in den weiteren Zeilen vorgenommen haben. Es werden nicht alle Zeilen der Tabelle benötigt.
| Aufruf | a | b | ergebnis | Ggf. Parameter für weiteren Aufruf von „mehrfachMult“ | Rückgabe |
|---|---|---|---|---|---|
| mehrfachMult(2, 3) | |||||
Was ist das Gesamtergebnis?
Der Code ist gegeben, nichts ist zu programmieren. Gesucht ist, was beim Aufruf mehrfachMult(2, 3) passiert. Für jeden Aufruf kommt eine Zeile in die Tabelle: welche Werte a und b haben, welchen Wert ergebnis bekommt, mit welchen Werten die Methode sich erneut aufruft und was sie zurückgibt.
Eine Methode, die sich selbst aufruft, heißt rekursiv. Jeder Aufruf hat seine eigenen Variablen a, b und ergebnis. Darum bekommt jeder Aufruf seine eigene Zeile.
- Die Methode Zeile für Zeile lesen.
- Hinweg: vier Aufrufe, bis b gleich 0 ist.
- Rückweg: von unten nach oben multiplizieren und zurückgeben.
- Gesamtergebnis ablesen und deuten.