Hi!
Ich bin absoluter in Java, und meine Frage ist etwas elementar, aber destotrotz konnte ich leider per Google keine Ergebnisse erzielen.
Die Funktion Primzahlen.returnArray() soll alle Primzahlen bis zu einer bestimmten Zahl berechnen und in ein Array laden. Ich weiß dass mein Programm ein absoluter RAM-Killer ist und es bestimmt viel einfacher geht, ich möchte aber eher daran lernen als ein konkretes Programm zu erzielen.
Beim ersten Durchlauf der Schleife [1] wird nur die Anzahl der Primzahlen mithilfe der Variablen counter gezählt, damit beim zweiten Durchlauf das Array-Objekt initialisiert werden kann (hier: [2]).
Beim Compilen kommt folgende Fehlermeldung:
Dabei wurde die Variable doch beim zweiten durchlauf bei [2] initialisiert... was mache ich falsch?
Bitte nicht sauer sein falls es was triviales ist - hab bis jetzt nur in PHP gearbeitet und kann mich immer noch nicht richtig an das OOP gewöhnen... mal hoffen das kommt mit der Zeit.
Danke, TJ.
Ich bin absoluter in Java, und meine Frage ist etwas elementar, aber destotrotz konnte ich leider per Google keine Ergebnisse erzielen.
Die Funktion Primzahlen.returnArray() soll alle Primzahlen bis zu einer bestimmten Zahl berechnen und in ein Array laden. Ich weiß dass mein Programm ein absoluter RAM-Killer ist und es bestimmt viel einfacher geht, ich möchte aber eher daran lernen als ein konkretes Programm zu erzielen.
Beim ersten Durchlauf der Schleife [1] wird nur die Anzahl der Primzahlen mithilfe der Variablen counter gezählt, damit beim zweiten Durchlauf das Array-Objekt initialisiert werden kann (hier: [2]).
Code:
public class Primzahlen {
public static int[] returnArray(int max) {
int counter = 0;
int[] prim;
for(int goingThru = 1; goingThru <= 2; goingThru++) { // 1
if (goingThru == 2) { // 2
prim = new int[counter];
counter = 0;
}
for(int i = 1; i <= max;i++) {
inside:
for(int j = 1; j <= i;j++) {
if (j != 1 && i != j && i % j == 0) {
break inside;
}
if (i == j) {
if (goingThru == 2) {
prim[counter] = i;
}
counter++;
}
}
}
}
return prim;
}
}
Beim Compilen kommt folgende Fehlermeldung:
Code:
Primzahlen.java:18: variable prim might not have been initialized
prim[counter] = i;
Primzahlen.java:25: variable prim might not have been initialized
return prim;
Dabei wurde die Variable doch beim zweiten durchlauf bei [2] initialisiert... was mache ich falsch?
Bitte nicht sauer sein falls es was triviales ist - hab bis jetzt nur in PHP gearbeitet und kann mich immer noch nicht richtig an das OOP gewöhnen... mal hoffen das kommt mit der Zeit.
Danke, TJ.