ArrayIndexOutOfBoundException : 15 (taille de mon tab)

Résolu
Signaler
Messages postés
42
Date d'inscription
dimanche 26 août 2012
Statut
Membre
Dernière intervention
30 mai 2013
-
Messages postés
42
Date d'inscription
dimanche 26 août 2012
Statut
Membre
Dernière intervention
30 mai 2013
-
Salut,

J'ai un soucis avec mes tableaux, je fais un programme pour calculer l'indice de la dernière occurrence d'un nombre (nb) dans un tableau d'entiers mais il me sort :
ArrayIndexOutOfBoundException : 15 (taille de mon tab);

Je vois pas où est le problème...

class DerOccNbFin{ 
public static int occ(int tab [ ] ){

int res 0, nb4;
for (int i=1;i<=tab.length;i++){
if (tab[i]==nb) res =i ;
}
return res;
}

public static void main(String args[]){
int tab [ ] = new int [15];
for (int i= 1; i<tab.length; i++){
tab[i]=i+2-1;
}
System.out.println("La dernière occurrence de 4 est : " +occ(tab));
}
}

// j'avais fait une fonction de ce genre pour remplir mon tableau mais ça tourne pas non plus... //

public static void main (String args[]){
int tab [] ={1,2,4,3,4,4,5,7,8,7,8,3,4,6};
System.out.println("La dernière occurrence de 4 est : "+occ(tab));
      }
}


J'avais déjà réussi à faire un programme similaire qui marche mais j'avais repris (en copier coller) une méthode qui était vue au cours et la seule différence avec la mienne sont les valeurs entrées...

Le principe déterministe m'échappe parfois avec les ordinateurs :-)

Un grand merci à ceux qui prendront la peine de me lire,

Axel





Les petits ruisseaux font les grands fleuves...

2 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
363
Bonjour,

Les éléments d'un tableau sont numérotés de 0 à sa taille - 1

Remplaces donc
for (int i=1;i<=tab.length;i++){
par
for (int i=0;i<tab.length;i++){
Messages postés
42
Date d'inscription
dimanche 26 août 2012
Statut
Membre
Dernière intervention
30 mai 2013
1
Bien joué et bon à savoir.

Merci
Les petits ruisseaux font les grands fleuves...