Cette erreur se produit lorsque la boucle d'exécution dépasse les limites de temps,
class demo{
public static void main(String a[]){
int[] numberArray={4,8,2,3,89,5};
int i;
for(i=0;i<numberArray.length;i++){
System.out.print(numberArray[i+1]+" ");
}
}
Tout d'abord, j'ai initialisé un tableau comme 'numberArray'. Ensuite, certains éléments du tableau sont imprimés en utilisant la boucle for. Lorsque la boucle s'exécute 'i' fois, l'élément 'numberArray[i+1]' est imprimé (lorsque la valeur i est 1, l'élément 'numberArray[i+1]' est imprimé ) Supposons que, lorsque i=(numberArray.length-2), le dernier élément du tableau est imprimé Lorsque la valeur 'i' atteint (numberArray.length-1), aucune valeur n'est imprimée A ce moment-là, 'ArrayIndexOutOfBoundsException' se produit J'espère que vous aurez une idée Merci !
1 votes
En ce qui concerne la dernière question, un code serait utile. Accédez-vous au tableau avec un index connu, ou devez-vous commencer à déboguer pour comprendre comment l'index est calculé lorsque l'erreur se produit ?
49 votes
Remplacer
i <= name.length
coni < name.length
- ou mieux, écrire une boucle for améliorée. (for (String aName : name) { ... }
)2 votes
Cela signifie que vous voulez obtenir un élément du tableau qui n'existe pas, 'i<=name.length' signifie que vous voulez obtenir l'élément length+1 - qui n'existe pas.
1 votes
fr.wikipedia.org/wiki/Off-by-one_error
0 votes
Le tableau sort de ses limites lorsque l'indice que vous essayez de manipuler est supérieur à la longueur du tableau. Pour être correct, vos indices doivent toujours être inférieurs d'une unité au nombre total d'éléments du tableau, car l'indice du tableau commence à 0 et non à 1.
0 votes
Le classique
null
exception du pointeur.