Message d'erreur tableau

Message d'erreur tableau - Java - Programmation

Marsh Posté le 30-10-2010 à 18:04:05    

Bonjour, une erreur s'affiche quand j'exécute le code suivant:
 
int[] tab;  
tab=new int[5]; // création d'un tableau de 5 entiers
tab[0]=3;
tab[1]=2;
tab[2]=10;
tab[3]=1;
tab[4]=9;
 
for (int k=0;k<5;k++) {
System.out.println(tab[k]); } // on affiche pour voir si le tableau a bien pris les valeurs entrées
 
 
int temp;
for (int i=1;i<5;i++) {
if (tab[i]>=tab[i+1]) {
temp=tab[i];
tab[i]=tab[i+1];
tab[i+1]=temp;
 
}
}

 
Message d'erreur: java.lang.ArrayIndexOutOfBoundsExecption 5
 
 
----
Que faire?


Message édité par willy54 le 30-10-2010 à 18:04:42
Reply

Marsh Posté le 30-10-2010 à 18:04:05   

Reply

Marsh Posté le 30-10-2010 à 18:17:04    

ici

Code :
  1. int temp;
  2. for (int i=1;i<5;i++) {
  3. if (tab[i]>=tab[i+1]) {
  4. temp=tab[i];
  5. tab[i]=tab[i+1];
  6. tab[i+1]=temp;


 
A la 4eme itération i+1 vaut 5 et ton tableau est indexé de 0 à 4

Reply

Marsh Posté le 30-10-2010 à 20:50:49    

Code :
  1. for (int i=1;i<5;i++) {
  2.  if (tab[i]>=tab[i+1]) {
  3.    emp=tab[i];
  4.    tab[i]=tab[i+1];
  5.    tab[i+1]=temp;
  6.  }
  7. }


a un problème avec les bornes, vous vouliez sans doute faire

Code :
  1. for (int i=0;i<4;i++) {
  2.  if (tab[i]>=tab[i+1]) {
  3.    emp=tab[i];
  4.    tab[i]=tab[i+1];
  5.    tab[i+1]=temp;
  6.  }
  7. }


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 31-10-2010 à 12:32:50    

Merci bien ;)

Reply

Marsh Posté le 31-10-2010 à 15:31:28    

Bonjour,
 
Je crois qu'on a aussi la possibilité suivante :
 
int i;
int tableauEntier[] = new int[5]; //création d'un tableau de 5 entiers
tableauEntier[] = {0,1,2,3,4} // tableauEntier recoit les 5 valeurs
 
for(int i = 0; i<tableauEntier.length; i++) {}  
 
 
 

Reply

Marsh Posté le 01-11-2010 à 08:53:12    

HAXOCIS a écrit :

Bonjour,
 
Je crois qu'on a aussi la possibilité suivante :
 
int i;
int tableauEntier[] = new int[5]; //création d'un tableau de 5 entiers
tableauEntier[] = {0,1,2,3,4} // tableauEntier recoit les 5 valeurs
 
for(int i = 0; i<tableauEntier.length; i++) {}  


 
Non, la syntaxe correcte, c'est :  

Code :
  1. int tableauEntier[] = new int[] {0, 1, 2, 3, 4};


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed