Hallo ich habe folgenden Code:
Das ist eine Aufgabe zum Verständnis vom Code. Ich habe auch die Lösung dazu, verstehe sie allerdings noch
nicht ganz.
Dieser Code führt zu einem fehlerhaftem Laufzeitverhalten...
Ich fange ja in der main-Methode an. f und i sind deklariert, aber noch nicht initialisiert. f hat dementsprechend noch eine null-Referenz und i noch keinen Wert.
Ich gehe also in die Schleife hinein, weil f noch eine null-Referenz hat (es wurde noch kein Objekt erzeugt). Dann muss ich i ausgeben und somit kommt schon meine erste Frage. Warum ist "System.out.println(i++)" kein Fehler? i hat doch noch überhaupt keinen Wert, wie soll ich es also ausgeben? Ich weiß, dass diese Zeile kein Fehler ist, deswegen verstehe ich es ja nicht.
Egal, danach geht es in die Methode erzeuge mit der Variable f.
Ich kann doch keine if-Anweisung mit i durchführen, wenn ich keinen Wert für i habe??
Ich würde mich freuen, wenn mir da jemand helfen könnte...
Liebe Grüße
Code:
public class Laufzeit1 {
static byte i;
static double [] [] f;
public static void erzeuge (double [] [] f) {
if (i==5)
f=new double [i][i];
}
public static void main (String[] args) {
while (f==null) {
System.out.println(i++);
erzeuge(f);
}
}
}
nicht ganz.
Dieser Code führt zu einem fehlerhaftem Laufzeitverhalten...
Ich fange ja in der main-Methode an. f und i sind deklariert, aber noch nicht initialisiert. f hat dementsprechend noch eine null-Referenz und i noch keinen Wert.
Ich gehe also in die Schleife hinein, weil f noch eine null-Referenz hat (es wurde noch kein Objekt erzeugt). Dann muss ich i ausgeben und somit kommt schon meine erste Frage. Warum ist "System.out.println(i++)" kein Fehler? i hat doch noch überhaupt keinen Wert, wie soll ich es also ausgeben? Ich weiß, dass diese Zeile kein Fehler ist, deswegen verstehe ich es ja nicht.
Egal, danach geht es in die Methode erzeuge mit der Variable f.
Ich kann doch keine if-Anweisung mit i durchführen, wenn ich keinen Wert für i habe??
Ich würde mich freuen, wenn mir da jemand helfen könnte...
Liebe Grüße