HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungProgrammieren
Besucher online: 955
Schnellsuche

Anzeigen

Community

Foren
Programmieren Seite 1/1
out of bounds
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Nachricht
Blackys
Titel: out of bounds 13.11.2011 18:44
1 Punkte (?)
 
Anmeldungsdatum: 13.11.2011
Beiträge: 1
bei dieser methode bekomm ich die Fehlermeldung

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:26)
aber des array is doch gar net out of bound also nicht größer als angegeben.
Findet jmd den Fehler






public class Test {
public static void main (String[] args) {
int i = 0;
int j = 0;
int k = 0;
int numbers = 3;
int[][] lectureHall = new int[10][15];
int w = 0;
int[] n = new int [numbers];
int laenge = n.length;
int[][] Rückgabe = new int [2][numbers];

while(i < 10){ //
while(j < 15){
if(lectureHall[i][j] == 0)
{
while (k < laenge-1 )
{
if((lectureHall[i][j+k]==0) || (lectureHall [i][j-k]== 0))
{
k++;
if(k==laenge-1)
{
while(j <= j+k)
{
Rückgabe[1][numbers-w] = j+k;
k--;
++w;
}
while(w >= 0)
Rückgabe[2][numbers-w] = i;
--w;
}
System.out.println( Rückgabe);
}



else{
j++;
}

}
}
}
}

}

}

Private Nachricht senden  
 
applecake
Titel: out of bounds 14.11.2011 09:17
33 Punkte (?)
 
Anmeldungsdatum: 13.07.2011
Beiträge: 29
Zitat:
while (j <= j + k){
Rückgabe[1][numbers - w] = j + k;
k--;
++w;
}


Dein Problem hier ist, dass du auf den Index 3 zugreifst, der nicht existiert. Wenn du ein Array mit 3 Indizes erstellst, kannst du auf die Indizes 0, 1 und 2 zugreifen. Java ist bei Indizes 0-basiert, d. h. der erste Index hat 0, der zweite 1, der dritte 2, usw. Wenn du auf den Index 3 zugreifen willst muss dein Array 4 Indizes groß sein.

Und nochwas:
j wird immer kleiner sein als j + k (es sei denn k ist negativ, was soweit ich sehe hier nicht der Fall ist) ==> Endlosschleife. Und daher wird der Aufruf auf "Rückgabe"(Java Code Convention - schonmal gehört?) am Index [1] [3-w] früher oder später auf einen negativen Bereich zugreifen.

Wenn ich jetzt mal fragen darf, was soll das Programm eigentlich genau tun?

lg

________________________________________
http://www.sysprofile.de/id160900
Private Nachricht senden  
 
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Community Login
eMail:
Passwort:
Auto-Login