ArrayIndexOutOfBoundsException lors d'une itération à travers tous les éléments d'un tableau
comment gérer cette exception ArrayIndexOutOfBoundsException"
mon code : j'ai créer un tableau de 64 longueur, alors je initialisée à chaque index puis-je imprimer l'index pour s'assurer que je suis de refoulage de tous les index, mais il permet d'imprimer jusqu'à 63 donne alors l'exception !! toute idée
public static void main(String [] arg) {
int [] a=new int [64];
for(int i=1;i<=a.length;i++){
a[i]=i;
System.out.println(i);
}
}
mais lorsque je change la boucle for pour for(int i=0;i<un.longueur;i++) il fonctionne ,mais je veux qu'il soit comme ci-dessus !!
Vous souhaitez recevoir une exception? Définir ce que vous voulez atteindre et nous allons vous aider:)
En Java, les tableaux commencent à partir de l'indice 0 et non pas 1, donc quand votre indice de dépasser 63, (64), à l'exception ArrayIndexOutOfBoundsException est levée.
Si vous avez besoin d'achever l'élaboration d'pourquoi nous obtenons cette exception, vous pouvez aller dans ma réponse ci-dessous.
double possible de Quelles sont les causes de java.lang.ArrayIndexOutOfBoundsException et comment puis-je l'empêcher?
Vous souhaitez recevoir une exception? Définir ce que vous voulez atteindre et nous allons vous aider:)
En Java, les tableaux commencent à partir de l'indice 0 et non pas 1, donc quand votre indice de dépasser 63, (64), à l'exception ArrayIndexOutOfBoundsException est levée.
Si vous avez besoin d'achever l'élaboration d'pourquoi nous obtenons cette exception, vous pouvez aller dans ma réponse ci-dessous.
double possible de Quelles sont les causes de java.lang.ArrayIndexOutOfBoundsException et comment puis-je l'empêcher?
OriginalL'auteur Gain | 2010-12-12
Vous devez vous connecter pour publier un commentaire.
Les indices de tableau en Java début de
0
et aller àarray.length - 1
. Afin de modifier la boucle pourfor(int i=0;i<a.length;i++)
OriginalL'auteur Petar Minchev
Indices commencent à partir de 0, ce dernier indice est de 63. Changer votre boucle for comme ceci:
for(int i=0;i<a.length;i++){
OriginalL'auteur Caner
Voir le JLS-Tableaux:
De sorte que vous avez à parcourir
[0,length()-1]
OriginalL'auteur Michael Konietzka
Besoin D'Explication Complète? Lire ce
L'indice d'un Tableau commence toujours à partir de
0
. Donc comme vous avez de 64 éléments de votre tableau, puis de leur index sera de0 to 63
. Si vous souhaitez accéder à la 64e élément, puis vous devrez le faire para[63]
.Si nous regardons maintenant votre code, alors vous avez écrit votre état d'être
for(int i=1;i<=a.length;i++)
icia.length
vous renvoie la longueur réelle de la matrice qui est de 64.Deux choses se passe ici:
i=1
, par conséquent, vous devez sauter le premier élément de ton tableau, qui sera au0th
index.a[64]
élément qui va sortir à la65th
élément du tableau. Mais votre tableau contient seulement 64 éléments. Ainsi, vous obtenezArrayIndexOutOfBoundsException
.Le bon moyen pour parcourir un tableau avec une boucle for serait:
for(int i=0;i < a.length;i++)
L'index de 0 à
< array.length
.OriginalL'auteur gprathour
En Java, les tableaux commencent toujours à l'indice 0. Donc, si vous voulez le dernier index d'un tableau de 64, le tableau doit être de taille 64+1 = 65.
OriginalL'auteur Robert
Vous pouvez corriger votre programme de cette façon :
i
est également visible après lawhile
boucle.Bon point, mais la chose principale est
i
commence à partir de0
.OriginalL'auteur fastcodejava
Vous avez fait vos calculs faux. Les tableaux de commencer à compter à 0. E. g. int[] t = new int[2] est un tableau de numération de 0 et de 1.
Vous devez définir votre integer 'i' pour une valeur de 0 au lieu de 1 pour que cela fonctionne correctement. Parce que vous commencer à 1, votre de boucle compte au-delà des limites du tableau, et vous donne une ArrayIndexOutOfBoundsException.
OriginalL'auteur