Hallo alle miteinander!
Ich habe die Aufgabe gestellt bekommen, die Türme von Hanoi als Programm zu schreiben. Die Theorie hab ich soweit verstanden. Ich bräuchte noch ein kleines bisschen Hilfe beim verstehen des Quellcodes.
Ich war erst sehr verwundert als mir die Reihenfolge umgedreht angezeigt wurde. Wenn ich [JAVA=42]System.out.println(a);[/code] über [JAVA=42]test(a - 1);[/code] setze, wird es mir richtig angezeigt. Meine frage dazu. Was passiert eigentlich im Hintergrund, dass das Programm am Ende noch einmal in die else if bedingung springt und die Variablen ausgibt?
Ich habe die Aufgabe gestellt bekommen, die Türme von Hanoi als Programm zu schreiben. Die Theorie hab ich soweit verstanden. Ich bräuchte noch ein kleines bisschen Hilfe beim verstehen des Quellcodes.
Java:
public class RekursionTester {
/*Methode, die zeigt, wie eine rekursive(rueckfuehrende) Methode
funktioniert*/
public static void test(int a){
//Wenn a 0 ist, gib diesen String aus.
if (a == 0){
System.out.println("There is nothing to do.");
}
/*Wenn a groesser 0 ist rufe die eigene Methode auf und ziehe bei a - 1 ab.
*
*/
else if(a > 0 ){
test(a - 1);
System.out.println(a);
}
}
public static void main(String args[]){
test(2);
}
Ich war erst sehr verwundert als mir die Reihenfolge umgedreht angezeigt wurde. Wenn ich [JAVA=42]System.out.println(a);[/code] über [JAVA=42]test(a - 1);[/code] setze, wird es mir richtig angezeigt. Meine frage dazu. Was passiert eigentlich im Hintergrund, dass das Programm am Ende noch einmal in die else if bedingung springt und die Variablen ausgibt?