Permuter 2 elements en java

[Fermé]
Signaler
-
 Ibrahim -
bonjour
je souhaite permuter deux elements dan un tableau
le premier element au rang 0 avec le deuxieme element
au rang 2
mais a l'execution le programe plante
voici le code

public void permuter()
{
int permut ;
for(int i =;i<=this.tab.length-1;i++)
{
permut = tab[i] ;
tab[i] = tab[i+2];
tab[i+2] = permut ;
}

}

2 réponses

Ton compteur i depasse la capacite de ton tableau.
exemple :
Tableau t de longueur 3
Ta condition d'arret sur ta boucle est la longueur de t - 1 donc 2

dans ta boucle tu accedes a t[compteur +2] avec compteur maximum 2 ca te fait 4 vu que ton tableau compte 3 elements ca va pas.

Fait ta condition d'arret sur i<this.tab.length-1
oui, je suis d'accord avec la réponce de Topic.
dans la boucle 'for' , l'indice 'i' va depasser la longueur de tableau 'tab' .

tu veux permuter l'élément à l'indice 0 avec ce qui à 2.
ça va passer.mais ça va pas arreter ici.
d'aprés ce qui tu a écrit, le programme va essayer de permuter l'élément à(i = this.tab.length-1 = 2) avec l'élément à l'indice (i+2=4)et ça n'existe pas.

alors vous pouvez la condition d'arret sur i<this.tab.length-1
ou bien si tu veut seulent permuter l'élément à l'indice 0 avec ce qui au 2 sans concernat aux autre élément du tableau.tu n'a pas besoin d'un boucle
alors vous pouvez seulement écrir :
permut = tab[0] ;
tab[0] = tab[2];
tab[2] = permut ;