Variable might not have been initialized error?
Hallo,
Meine Code ist aufm Bild! Die Ergebniss ist immer 0 und wenn ich index nicht initialisiere dann bekomme ich "Variable might not have been initialized". Ich stehe gerade aufm schlauch >.<
Danke im Voraus :)
LG
![Pushhelp - (programmieren, Java)](https://images.gutefrage.net/media/fragen/bilder/variable-might-not-have-been-initialized-error/0_big.jpg?v=1513048347000)
3 Antworten
![](https://images.gutefrage.net/media/user/HylianGamer/1485370368694_nmmslarge__177_6_249_249_956c81856ddf74a8781640554367af0d.jpg?v=1485370371000)
Hast du deine Methode auch mit verschieden Arrays ausprobiert? So wie es dasteht, sollte immer etwas >0 ausgegeben werden, falls die ersten 2 Elemente des Arrays != 0 sind, ansonsten wird halt 0 ausgegeben, da du ja die Schleife nach der ersten 0 im Array sofort abbrichst.
Dass " Variable might not have been initialized " dransteht, falls du dein j nicht initialisiert, lässt sich außerdem einfach erklären.
Sagen wir, du hast dein j nicht initialisiert und dein erstes Element in array ist 0, also array[0] = 0.
Du gehst in deine Schleife rein und schaust, ob array[0] != 0 ist. Ist ja nicht der Fall -> geht in den else-Block rein und bricht die Schleife ab. Wir merken: j wurde bis jetzt immer noch angefasst.
Naja, jetzt musst du j returnen. Ohne Wert wird das schwierig.
![](https://images.gutefrage.net/media/user/SabrinaDondic/1500099351965_nmmslarge.jpg?v=1500099354000)
Warum der fehler für j auftritt, hat HylianGamer in seiner Antwort ja schon angedeutet: Wenn Du j nicht initialisierst, dann kannst Du im "else - break"-Zweig landen, ohne dass vorher j "irgendwie" gesetzt wurde. Danach gibst Du "return(j)" einen nicht initialisierten Wert zurück ... nicht gut ;)
Was mir auffällt: Wer oder was ist "array". Da übergibst der Funktion kein "array" und deklarierst/initialisierst auch nichts innerhalb der Funktion. Deshalb habe ich ohnehin Zweifel, ob Deine "for"-Schleife überhaupt anspringt. Bei nicht initialisiertem j landest Du also gleich bei "return(j)" mit "Variable might not have been initialized" falls Du nicht j=0 setzt. Da meiner Meinung nach nie irgendetwas innerhalb der for-Schleife ausgeführt wird, erklärt das auch, warum Du immer 0 zurückbekommst.
Meine zwei Cent zu dem Codeschnipsel ;)
![](https://images.gutefrage.net/media/default/user/7_nmmslarge.png?v=1438863662000)
Meinst du mit "index" die Variable "j"?
Eine for-Schleife wird nicht notwendigerweise durchlaufen, außerdem steht die Zuweisung an j innerhalb der Schleife unter einer Bedingung.
Warum immer 0 herauskommt, kann nur am Array liegen.
-----
Übrigens verstehe ich nicht ganz, warum du j mit 0 und nicht mit -1 initialisierst. Die Funktion ist ansonsten ganz offensichtlich eine Analogie zur indexOf()-Methode, die -1 zurückgibt, wenn das Element nicht gefunden wird.
Genau die for schleife wird nicht durchlaufen das verstehe ich nicht wieso. Es ist egal ob j mit -1 oder irgendein int intializiert. Die for schleife geht einfach nicht!!