Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Dreidimensionales Array mit Zufallszahlen befüllen
ich bastel gerade ein bisschen rum und versuche ein dreidimensionales Array zu befüllen, eine Dimension soll mit Zufallszahlen befüllt werden, die anderen 2 ganz normal durch die Werte der for - Schleifen von 0-100.
Jedoch bekomme ich immer folgende Fehlermeldung....
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at versandhandel.arraybefüllen(versandhandel.java:38)
at versandhandel.Zufallsauftragsnummer(versandhandel.java:10)
at versandhandel.main(versandhandel.java:68)
Obwohl die Größe eigentlich nicht überschritten werden dürfte....
Könnt ihr mir vielleicht sagen was ich falsch mache.
Vielen Dank vorab.
Code:
public class versandhandel {
public static void Zufallsauftragsnummer(int untereGrenze, int obereGrenze ) {
int differenz = obereGrenze - untereGrenze;
int zufallZahl1 = (int) (Math.random() * differenz) + untereGrenze;
arraybefüllen(zufallZahl1);
}
public static int arraybefüllen(int zufallwert1) {
//Dreidimensionales Array für die Kundenaufträge, jeweils Größe 100
int [][][] Kundenaufträge = new int [100][100][100];
//Befüllen des Arrays hierfür werden drei forschleifen benötigt
int i=0;
int j=0;
int k=0;
for(i=0; i<Kundenaufträge.length-1;i++) {
Kundenaufträge[i][j][k]=zufallwert1;
}
for(j=0; j<Kundenaufträge.length-1;k++) {
Kundenaufträge[i][j][k]=j;
}
for(k=0;k<Kundenaufträge.length-1;k++) {
Kundenaufträge[i][j][k]=k;
}
for(i=0; i<Kundenaufträge.length;i++) {
for(j=0; j<Kundenaufträge.length;k++) {
for(j=0; j<Kundenaufträge.length;k++) {
System.out.println(Kundenaufträge[i] [j] [k]);
}
}
}
return zufallwert1;
}
public static void main (String []args) {
Zufallsauftragsnummer(1000,1100);
}
}
Was sind nur ein ein paar Zeichen ?
Also das was ich will ist das, dass dreidimensionale Array befüllt wird. Der erste Index i, soll durch die Zufallszahl befüllt werden, j &k durch die Werte selbst. Für i=0 wird zu dem Index eine Zufallszahl gespeichert, vorher wird geprüft ob i kleiner ist als die Länge des Arrays ( also ob noch Platz im Array ist), anschließend wird i um ein erhöht und hoffentlich eine neue Zufallszahl im Index i =1 gespeichert...aber ich glaube da läuft schon etwas nicht mehr ganz richtig. Weil die Methode Zufallszahlerzeugen nur einmal aufgerufen wird ....
public class versandhandel {
public static int Zufallsauftragsnummer(int untereGrenze, int obereGrenze ) {
int differenz = obereGrenze - untereGrenze;
int zufallZahl1 = (int) (Math.random() * differenz) + untereGrenze;
return zufallZahl1;
}
public static int arraybefüllen(int zufallwert1) {
//Dreidimensionales Array für die Kundenaufträge, jeweils Größe 100
int [][][] Kundenaufträge = new int [100][100][100];
//Befüllen des Arrays hierfür werden drei forschleifen benötigt
int i=0;
int j=0;
int k=0;
for(i=0; i<Kundenaufträge.length;i++) {
Kundenaufträge[i][j][k]=Zufallsauftragsnummer(1000,2000);
}
for(j=0; j<Kundenaufträge.length;k++) {
Kundenaufträge[i][j][k]=j;
}
for(k=0;k<Kundenaufträge.length;k++) {
Kundenaufträge[i][j][k]=k;
}
for(i=0; i<Kundenaufträge.length;i++) {
for(j=0; j<Kundenaufträge.length;k++) {
for(j=0; j<Kundenaufträge.length;k++) {
System.out.println(Kundenaufträge[i] [j] [k]);
}
}
}
return zufallwert1;
}
public static void main (String []args) {
Zufallsauftragsnummer(1000,1100);
}
}
habe nun nochmal darüber nachgedacht, aber nun bekomme ich gar keine Ausgabe mehr...
Weil du so nichts lernst.
Wo erhöhst du da i oder j?
Sehe davon nichts in den code oder siehst du was davon? Ich rede von dem Code das ich gepostet habe.
Ergänzend möchte ich doch noch was los werden. Programmieren ist nichts, was du mal kurz im vorbei gehen mitnimmst. Es ist auch kein Hobby, was man nebenbei betreiben kann. Du musst Interesse, Geduld und vor allem ein gewissen Grad an Verbissenheit mitbringen und mit Frustration umgehen können. Zudem kontinuierliche Lernbereitschaft. Alles entwickelt sich, Java 9 ist kürzlich erschien, neue Sachen werden aufgerollt, JavaFX zum Beispiel, da wirst du noch nicht all zu viele Lehrbücher zum Thema finden.
Eins sollte klar sein: Grundlagen müssen sitzen! Ohne wirst du es nicht packen.
Wenn du ein Buchtipp willst, gerne, lernen musst du selbst