Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
-
class Sortieren { public static void main( String[] argv ) { double[] feld = new double[argv.length]; for(int i=0; i<argv.length; ++i) feld[i] = Double.parseDouble(argv[i]); //groesstes Element bestimmen double maxvalue = feld[0]; // Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Sortieren.main(Main.java:12) for(int i=1; i<argv.length; ++i) if(feld[i] > maxvalue) maxvalue=feld[i]; for(int i=0;i<argv.length; ++i) System.out.println(feld[i]); } }
Warum verusacht die Zeile
double maxvalue = feld[0]; // Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Sortieren.main(Main.java:12)
einen overflow?
-
Verstehst du nicht, was du da geschrieben hast? Es hängt von den Programmparametern ab, wie groß das Array wird und bei einem Array mit der Größe 0 ist es etwas schwierig, auf das erste Element zuzugreifen.
-
Außerdem steht in deiner for schleife ++i, heißt i wird zuerst incrementiert (oder irre ich da?) beim schreiben in ein array[i] fängt er an bei array[1] -> array[0] leer ...
-
Bei array[1] fängt er nicht wegen ++i an, sondern weiter unten wegen i = 1. Aber so weit kommt er ja gar nicht erst.