Guten Tag
Ich bin Maschinentechnik Student und besuch nun den Java-Kurs.
Leider stehe ich des öftern an und auch nun habe ich per Zufall mit einem Kameraden zusammen dieses Programm entworfen. Erstaundlicherweise funktioniert es sogar, doch ich habe grosse Mühe die Rekursion an sich zu verstehen. Wenn ich z.B. die Zahl 5 eingebe was macht der Computer dann genau? Also ich weiss, dass ich ein Hauptrogramm (main) geschrieben habe. Darin habe ich einen Link zu einem Unterprogramm mit dem Namen Fakultaet (x). Und dann habe ich das Unterprogramm in dem ich die gesamte Rechenarbeit programmiert habe.
Aber genau dort happerts.
Dort weiss, dass wenn x aussieht wie 0 dann gehe zurück ins main und gib mit die Zahl aus. Was er dann bei else macht weiss ich jedoch nicht genau.
Vor allem wie er das ganze am Schluss zusammenbekommt und mir dann 120 ausgiebt. Ich habe ja gar keine Addition oder so programmiert.
Vielen Dank für die Hilfe.
Gruss Ferstl
Das Programm lautet:
import java.io.*;
public class FakultaetRekursiv {
public static void main (String[] args) {
System.out.print ("Bitte geben Sie eine Zahl ein: ");
int x = Console.readInt ();
System.out.println ("Die Fakulaet lautet " + Fakultaet (x));
System.out.println ();
System.out.println ("bye bye");
}
public static int Fakultaet (int x) {
if (x==0) {
return 1;
}
else return Fakultaet (x-1)*x;
}
}
Ich bin Maschinentechnik Student und besuch nun den Java-Kurs.
Leider stehe ich des öftern an und auch nun habe ich per Zufall mit einem Kameraden zusammen dieses Programm entworfen. Erstaundlicherweise funktioniert es sogar, doch ich habe grosse Mühe die Rekursion an sich zu verstehen. Wenn ich z.B. die Zahl 5 eingebe was macht der Computer dann genau? Also ich weiss, dass ich ein Hauptrogramm (main) geschrieben habe. Darin habe ich einen Link zu einem Unterprogramm mit dem Namen Fakultaet (x). Und dann habe ich das Unterprogramm in dem ich die gesamte Rechenarbeit programmiert habe.
Aber genau dort happerts.
Dort weiss, dass wenn x aussieht wie 0 dann gehe zurück ins main und gib mit die Zahl aus. Was er dann bei else macht weiss ich jedoch nicht genau.
Vor allem wie er das ganze am Schluss zusammenbekommt und mir dann 120 ausgiebt. Ich habe ja gar keine Addition oder so programmiert.
Vielen Dank für die Hilfe.
Gruss Ferstl
Das Programm lautet:
import java.io.*;
public class FakultaetRekursiv {
public static void main (String[] args) {
System.out.print ("Bitte geben Sie eine Zahl ein: ");
int x = Console.readInt ();
System.out.println ("Die Fakulaet lautet " + Fakultaet (x));
System.out.println ();
System.out.println ("bye bye");
}
public static int Fakultaet (int x) {
if (x==0) {
return 1;
}
else return Fakultaet (x-1)*x;
}
}