gpt4 book ai didi

创建多对象时出现 java.lang.ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-02 11:15:04 25 4
gpt4 key购买 nike

我一直在研究这个程序,最后一件事是,我试图创建一个包含“多个”对象的数组,这样它就可以动态地创建对象。

无论如何,我不断收到上述错误,但我不知道为什么?如果有任何人可以提供帮助,我将不胜感激!

我写了一条关于错误出现位置的评论...

谢谢:)

    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();
}
}

}

}

}

最佳答案

dim 的范围应介于 0vek.length-1 之间,两者均包含在内。否则,您会在 vek[dim] 等地方得到 java.lang.ArrayIndexOutOfBoundsException。检查 int dim = readInteger();

的用途和返回值

此外,为了使代码更简单、可读和可调试,重命名变量和方法名称肯定会有帮助。

关于创建多对象时出现 java.lang.ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50343580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com