Problème d'Indice ArrayIndexOutOfBoundsException JAVA
Fermé
Sarah
-
7 oct. 2012 à 20:29
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 7 oct. 2012 à 20:55
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 7 oct. 2012 à 20:55
A voir également:
- Problème d'Indice ArrayIndexOutOfBoundsException JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Indice téléphonique - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
7 oct. 2012 à 20:42
7 oct. 2012 à 20:42
ArrayIndexOutOfBoundsException ce n'est pas une erreur que tu as à la compilation mais à l'exécution !
Les cases d'un tableau de taille n vont de 0 à n-1, cette exception indique que tu essayes d'accéder à une case qui n'existe pas. Remarque : l'exception doit indiquer quelle est la valeur de la case à laquelle tu essayes d'accéder.
Tu utilises tabTri[i], or avec ta boucle for tu initalises i avec la valeur tabTri.length, il faudrait que tu commences par l'indice tabTri.length-1
Par ailleurs, tu utilises tabTri[i-1], ce qui va là encore poser problème mais cette fois pour la valeur i=0 puisque tu vas chercher la case "-1" qui n'existe pas, il faut donc t'arrêter à la valeur 1.
Tu devrais donc avoir : for (int i=tabTri.length-1 ; i>=1; i--)
Remarque : en faisant tabTri[i] = insert; puis tabTri[i+1] = tabTri[i]; tu vas affecter la valeur "insert" sur les deux cases, le programme ne feras donc pas ce que tu veux.
Les cases d'un tableau de taille n vont de 0 à n-1, cette exception indique que tu essayes d'accéder à une case qui n'existe pas. Remarque : l'exception doit indiquer quelle est la valeur de la case à laquelle tu essayes d'accéder.
Tu utilises tabTri[i], or avec ta boucle for tu initalises i avec la valeur tabTri.length, il faudrait que tu commences par l'indice tabTri.length-1
Par ailleurs, tu utilises tabTri[i-1], ce qui va là encore poser problème mais cette fois pour la valeur i=0 puisque tu vas chercher la case "-1" qui n'existe pas, il faut donc t'arrêter à la valeur 1.
Tu devrais donc avoir : for (int i=tabTri.length-1 ; i>=1; i--)
Remarque : en faisant tabTri[i] = insert; puis tabTri[i+1] = tabTri[i]; tu vas affecter la valeur "insert" sur les deux cases, le programme ne feras donc pas ce que tu veux.
7 oct. 2012 à 20:49
Merci beaucoup ! Ca a effectivement éxécuté mais du coup je compare pas l'élement d'insertion à l'indice 0 de mon tableau ?
:)
7 oct. 2012 à 20:55
Il faut donc revoir ton algorithme en fonction de tes besoins pour toujours utiliser des indices valides.