Warum funktioniert folgender Java-Quellcode nicht?

... komplette Frage anzeigen

4 Antworten

for (int i = 0; i<x; i++){ if (i==x) break; ....

Hier ist die break-Anweisung Unsinn. Die Bedingung wird nie erfüllt, da i in der Schleife von 0 bis (i < x) läuft.

Die do-while-Schleife darunter ist auch Unsinn und macht deinen Quelltext nur unnötig kompliziert. Und in dieser Schleife wird wahrscheinlich auch der Fehler liegen - du versuchst, im Array auf eine ungültige Position zuzugreifen. Ich würde mal vermuten, dass x nach der for-Schleife den ersten zu hohen Wert hat, also z.length + 1. Und auf diesen ungültigen Wert versuchst du, bei

a+=z[x];

zuzugreifen. (Ich müsste aber auch erst durchtesten, ob das der Fehler ist)

Was spricht dagegen, die do-while-Schleife gegen genau die gleiche for-Schleife von weiter oben zu ersetzen?

Antwort bewerten Vielen Dank für Deine Bewertung

Dein Array hat die Länge x. Der höchste erlaubte Index ist x-1. Deine Eingabe Schleife läuft so lange, bis i=x gilt, deine Aufsummierschleife fängt mit diesem x an. Die zweite Schleife greift also mit einem zu großen Index auf das Array zu.

Beherzige beide anderen Tipps (Schleifen lernen und formatiert Posten)

Antwort bewerten Vielen Dank für Deine Bewertung

Du solltest Dich zunächst mal mit den Funktionen von Schleifenausdrücken wie "for" und "do ... while" vertraut machen. Darin wird in aller Regel kein "break" verwendet.

Antwort bewerten Vielen Dank für Deine Bewertung

Bitte formatiere deinen Code, damit er lesbarer wird.

LG Willibergi

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von maximilianus7
15.05.2016, 15:25

du solltest auch sagen wie: wahrscheinlich ist sein code formatiert und der GF-editor hat alles kaputt gemacht. nein, auch die code funktion <> funktioniert nicht.

code extern auf www.paste2.org posten. 

0

Was möchtest Du wissen?