java.lang.ArrayIndexOutOfBoundsException при создании мультиобъектов
Я работал над этой программой, и последнее, что я пытался создать массив с числом объектов "an", чтобы он мог создавать объекты в двоичном формате.
Во всяком случае, я продолжаю получать ошибку выше, и я понятия не имею, почему? Буду признателен, если кто-нибудь может помочь!
Я написал комментарий о том, где появляется ошибка...
Спасибо:)
public static void main (String [] args) {
int an= readInteger ("Mit wie vielen Vektoren möchten Sie rechnen: ");
//Polynom v = new Polynom (an); // generates "an" number of vectors
//dies ForLoop ist fuer die Rechnung von v1, v2, usw..
for (int i =0; i<an;i++) {
System.out.println("Vektor v" +(i+1));
System.out.println("Welche Dimension soll der Vektor" +(i+1) +" besitzen: ");
int dim = readInteger();
System.out.println("Wie soll der Vektor gefüllt werden? \n"
+ "(1) Werte eingeben \n"
+ "(2) Vektor mit Zufallszahlen füllen \n"
+ "(3) Vektor mit Nullen füllen \n");
Polynom [] vek = new Polynom [an]; // create array of "a" number of elements
// that holds objects addresses
// this will create objects in a loop
for (int x = 0; x < vek.length; x++) {
vek [x] = new Polynom(x+1); //this will call constructor
//Generiert "an" Anzahl von Objekten
int a = readInteger();
System.out.println("Auswahl: "+a +"\n");
if (a==1) {
System.out.println("Bitte geben Sie die Elemente des Vektors ein: ");
vek[dim].eingabe(); //ERROR IS HERE
vek[dim].ausgabe();
}
else if (a==2) {
System.out.println(dim +" Zufallsvariablen wurden generiert ");
vek[dim].Zufallszahlen(); //ERROR ALSO HERE
vek[dim].ausgabe();
}
else if (a==3) {
System.out.println("Die " +dim +" Vektoren wurden mit Nullen gefuellt ");
vek[dim].Nullen(); //ERROR
vek[dim].ausgabe();
}
}
}
}
}
1 ответ
dim
должен варьироваться между 0
а также vek.length-1
, оба включены. В противном случае вы получите java.lang.ArrayIndexOutOfBoundsException
в таких местах, как vek[dim]
, Проверьте цель и возвращаемое значение для int dim = readInteger();
Кроме того, чтобы сделать код более простым, читаемым и отлаживаемым, переименование переменных и имени метода, безусловно, поможет.