Hallo zusammen,
bin recht neu in Java
und lese das Buch "Java ist auch eine Insel".
Leider verstehe ich die rekursiven Funktionen nicht ganz.
2 Beispiele:
1.
2.
Nehmen wir als Funktionsaufruf down1(5) sowie down2(5).
Das erste Beispiel verstehe ich und die Ausgabe kann ich nachvollziehen.
Er zählt einfach von 5 runter bis 1. Ist n<=0 erreicht ist das ganze beendet.
Das zweite Beispiel verstehe ich nun nicht mehr...
Und erst recht nicht, warum das Ergebnis 1 , 2 ,3, 4 ,5 ist...
In meinen Augen würde das System.out.print nie erreicht werden..
weil der sich ja immer und immer wieder selber aufruft...
Könnt ihr mir das bitte erklären?
Besten Dank,
Kesandal
Edit: Gibt es in Eclipse irgend eine Möglichkeit (wie z.B. in C++) den Code schrittweise auszuführen?
Vielleicht würde mir dies beim Verständniss helfen.
bin recht neu in Java
und lese das Buch "Java ist auch eine Insel".
Leider verstehe ich die rekursiven Funktionen nicht ganz.
2 Beispiele:
1.
Code:
static void down1( int n ) {
if ( n <= 0 ) // Rekursionsende
return;
System.out.print( n + ", " );
down1(n-1);
}
2.
Code:
static void down2( int n ){
if ( n <= 0 )
return;
down2(n-1);
System.out.print( n + ", " );
}
Nehmen wir als Funktionsaufruf down1(5) sowie down2(5).
Das erste Beispiel verstehe ich und die Ausgabe kann ich nachvollziehen.
Er zählt einfach von 5 runter bis 1. Ist n<=0 erreicht ist das ganze beendet.
Das zweite Beispiel verstehe ich nun nicht mehr...
Und erst recht nicht, warum das Ergebnis 1 , 2 ,3, 4 ,5 ist...
In meinen Augen würde das System.out.print nie erreicht werden..
weil der sich ja immer und immer wieder selber aufruft...
Könnt ihr mir das bitte erklären?
Besten Dank,
Kesandal
Edit: Gibt es in Eclipse irgend eine Möglichkeit (wie z.B. in C++) den Code schrittweise auszuführen?
Vielleicht würde mir dies beim Verständniss helfen.