Probleme java

lilou -  
arth Messages postés 10414 Statut Contributeur -
Bonjour,j'ai ecrit une fonction de tri de tableau en java et elle ne veut pas marcher
la fonction est la suivante
public void tri(){
int i,j,x;
for(i=0; i<n-1; i++)
for (j=i+1; i<n; j++)
if (tab[i]>tab[j])
{x=tab[i];
tab[i]=tab[j];
tab[j]=x;}}

je l'ai ecrite dans une classe tableau ,et executer a partir d'une classe Main
le message s'affichant est :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at Tableau.tri(Tableau.java:32)
at Main.main(Main.java:8)
A voir également:

3 réponses

arth Messages postés 10414 Statut Contributeur 1 293
 
Hello,
Tu peux nous dire quelle est la taille de N et de tab ?

Parce qu'en général, cette erreur survient lorsque tu essaies d'accéder à une valeur en dehors du tableau, exemple tu veux accéder à Tab[101] alors que le tableau n'est que de 100 cases.
0
lilou
 
MERCI je viens de regler le pb,j'avais mis un i à la place de j dans la 2eme boucle , c tt
SVP dites moi comment si par exemple je declare un tableau de 6 elements et je veux en lire que 5
laisser une case vide quoi.............comment ne lire que 5 et pas 6 je sors avant le 6 eme
0
arth Messages postés 10414 Statut Contributeur 1 293
 
Je verrais une boucle du genre :

i=0

While(tab[i] != null)
{
ton_traitement
i++
}

Enfin à améliorer et en fonction des données que contient ton tableau, si il s'agit de String ou autre.
0