Ich fand dieses Beispiel der Rekursion online, aber ich verstehe nicht, was darin passiert.Wie funktioniert eine Rekursionsmethode?
public class MysteryClass {
public static void mystery(int n) {
if (n > 0) {
mystery(n-1);
System.out.println(n * 4);
mystery(n-1);
}
}
public static void main(String[] args) {
MysteryClass.mystery(2);
}
}
die Ausgabe
4
8
4
Was ich verstehe, ist, dass
- 2 ist größer als 0
- 2 - 1 = 1
- 1 ist größer als 0
- 1 - 1 = 0
- 0 ist nicht größer als 0
- Jetzt sind wir zu dieser Zeile springen:
System.out.println(n * 4);
- 1 * 4 = 4
- 2 * 4 = 8
- Hier verstehe ich nicht, warum ich noch ein „4 erhalten Ausgabe
Was passiert in Schritt 9?
Ich habe einen Debugger aber immer noch nicht verstanden.
Faust aller letzte Geheimnis entfernen sagen“(n-1) " –
danke für die antwort ,, aber warum muss ich es entfernen? –
Weil es den Druck für den folgenden Parameter in dieser Reihenfolge ausführt: -> '1,2,1' – SomeJavaGuy