Hallo,
es geht um Rekursion:
Bei down2(10) wird "1, 2, 3, 4, 5, 6, 7, 8, 9, 10," ausgegeben und nicht - wie meine Logik die Lösung sehen würde - nichts. Sagen wir down2(10), also wird down2(10-1) ausgerufen, also ist n = 9, also down2(9) praktisch. Und das so lange, bis n = 0 ist (wegen Rekursion, Zeile 6).
In der Methode steht aber doch direkt ganz am Anfang, dass falls n <= 0 ist, die Methode beendet werden soll, also warum wird da überhaupt ETWAS ausgegeben (und dann auch noch von 1 aufsteigend :autsch Wo ist hier bitteschön n + 1, weswegen n = 1 wäre (denn n ist ja nach der ganzen Subtraktion wegen Rekursion erst einmal = 0!)?
es geht um Rekursion:
Java:
static void down2( int n )
{
if ( n <= 0 ) // Rekursionsende
return;
down2( n – 1 );
System.out.print( n + ", " );
}
Bei down2(10) wird "1, 2, 3, 4, 5, 6, 7, 8, 9, 10," ausgegeben und nicht - wie meine Logik die Lösung sehen würde - nichts. Sagen wir down2(10), also wird down2(10-1) ausgerufen, also ist n = 9, also down2(9) praktisch. Und das so lange, bis n = 0 ist (wegen Rekursion, Zeile 6).
In der Methode steht aber doch direkt ganz am Anfang, dass falls n <= 0 ist, die Methode beendet werden soll, also warum wird da überhaupt ETWAS ausgegeben (und dann auch noch von 1 aufsteigend :autsch Wo ist hier bitteschön n + 1, weswegen n = 1 wäre (denn n ist ja nach der ganzen Subtraktion wegen Rekursion erst einmal = 0!)?
Zuletzt bearbeitet: