Permuter 2 elements en java

abdel -  
 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 ;
}

}
Configuration: Windows XP
Opera 9.00

2 réponses

  1. Topic
     
    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
    0
  2. Ibrahim
     
    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 ;
    0