0

Ich habe in Java folgenden Code geschrieben:

private int factorial(int n) {
                for (int count=1, c=2; count <= n; count++) {
                     c = count * c;
                }
                return c;
            }

Bei return c ist jedoch eine Fehlermledung, weil das Programm die Variable c nicht kennt. Das liegt wahrscheinlich daran, dass sie innerhalb des for-loops local aufrufbar ist. Was muss ich machen, damit ich diese Variable auch außerhalb der Schleife aufrufen kann? Ich will sie ja schließlich "returnen".

Diese Frage melden
gefragt

Schüler, Punkte: 10

 
Kommentar schreiben
1 Antwort
0

Du musst ganz einfach die Variable vor der Schleife deklarieren, also in der Zeile vor dem "for"

private int factorial (int n) {

int c = 2;
for (int count = 1; count <= n; count++)
{
  c = count * c;
}
return c;

}

Ansonsten ist c nur in den geschweiften Klammern der Schleife verfügbar, so ist es eine Ebene höher, also in der gesamten Funktion, abrufbar. Abgesehen davon ist deine Berechnung falsch, zumindest wenn du n Fakultät berechnen willst. Dazu musst du mit c = 1 starten.

Außerdem würde ich etwas aufpassen, dass die Zahlen nicht zu groß werden. Die Fakultätsfunktion wächst sehr stark, wenn du sehr große Zahlen berechnen willst musst du für c einen anderen Datentypen nehmen.

Diese Antwort melden
geantwortet

Punkte: 160

 

Kommentar schreiben