Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Gruppenaufgabe 2.3
Hallo,
ich arbeite gerade an der Aufgabe mit dem 2D array.
Wenn ich den Code mit Eclipse kompiliere kommen keine Fehler mehr, aber es wird mir nur folgendes ausgegeben:
-1.23456E-87
OCTOBER
[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
da fehlt ja noch was, aber ich weiß nicht wie ich jetzt vorgehen muss, um den Fehler zu finden.
Kann mir da jemand helfen?
also in der main Methode geht es so wie ich das sehe bis zu:
for (char[] r: someMoreCharacters()){…
macht da aber nicht weiter…
an was kann das liegen?
Endlosschleife in someMoreCharacters()?
hi, ja das habe ich mir auch gedacht, aber ich kann keine finden:
ich bin folgendermaßen vorgegegangen:
- mit äußerer for-schleife springe ich von zeile zu zeile bis i < characters.length
- innerhalb der äußeren for-schleife spreche ich mit
z.B.while i ==0
nur die erste Zeile an - darin befindet sich wieder eine for-schleife zum Befüllen der zeile mit
j < characters[i].length; j++
ist da vllt der fehler irgendwo?
danke schonmal
Mach einfach in jede Schleife eine Ausgabe-Anweisung rein, dann siehst du, wo es nicht weiter geht.
Und nur so als Tipp: dein Schleifenkonstrukt klingt deutlich zu aufwaendig fuer diese Aufgabe…
Edit: Was soll die Schleife unter 2. machen? Ich vermute jetzt einfach mal, dass hier i nicht erhoeht wird, dann hast du eine Endlosschleife, da “i==0” immer true liefert.
ich habe die while bedingung eingefügt weil ich dachte, dass erst eine zeile komplett ausgefüllt wird, dann würde es ja weitergehen aber while (i==1) , while (i==2) und while (i==3) treffen ja nicht zu und somit wird i um eins erhöht und die zweite zeile wird ausgefüllt…
wie kann man das anders lösen?
Willst du dann nicht eher ein if haben? Schleifen brauchst du nur dann, wenn der gleiche Code mehrfach ausgefuehrt werden soll, das scheint hier nicht der Fall zu sein.
Ich vermute (kenne deinen Code ja nicht), dass innerhalb des Schleifenrumpfes deiner while-Schleife die Variable i nicht erhoeht wird. Nachdem der Rumpf dann komplett ausgefuehrt wurde, wird die Bedingung erneut ueberprueft (Schleife!), welche natuerlich dann noch immer true ist…
Beispielsweise mit der „inline“-Syntax zur Definition von Arrays:
int[] foo = {1, 2, 3};
Oder aber - wenn du es mit Schleifen machen willst - ganz einfach mit vier Schleifen hintereinander (eine fuer die erste Zeile, danach eine fuer die zweite Zeile, usw.). Verschachtelte Schleifen brauchst du hier nicht, weil du fuer jede Zeile ja eh was anderes machen musst (wenn du eine Schleife hast, die ueber die Zeilen iteriert, dann brauchst du darin eine riesen Fallunterscheidung - dann kannst du dir die Schleife aber auch sparen).