ArrayIndexOutfOfBoundsException 20
Résolu
Xelo-arx
Messages postés
12
Statut
Membre
-
fromagedebikette Messages postés 925 Statut Membre -
fromagedebikette Messages postés 925 Statut Membre -
Bonjour, j'ai un petit soucis avec une fonction qui ne veut pas me retourner -1 quand je trouve pas une valeur dans un tableau :
Merci d'avance
public static int rechercheSeq1(int [] t, int valeur){
int i = 0;
while((t[i] != valeur) && (i < t.length)){
i++;
}
if(i == t.length){
i = -1;
}
return i;
}
Merci d'avance
5 réponses
-
Le problème dans le code est que l'on accède à un index qui n'existe pas.
while((t[i] != valeur) && (i < t.length)){
Il faut changer l'ordre de la condition en
(i < t.length) && (t[i] != valeur)
Explication : si le tableau contient 4 éléments, la taille sera 4 mais les index vont de 0 à 3. Or dans la première condition, on demande la valeur à l'index. Et tab[4] n'existe pas. Si on effectue en premier le test i < t.length, le test vaudra faux et la suite du test ne sera pas effectuée, donc ne renverra pas d'erreur comme on ne demande pas un index inexistant.
-
Je te remercie ça marche parfaitement bien =)
et un autre soucis c'est l'utilisation de cette fonction :
public static long getTemps() { Date d = new Date(); return d.getTime(); }
Comment l'utilises-t-on dans le main ? -
il suffit d'appeler la fonction soit par getTemps() soit par NomClasse.getTemps()
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
de rien ;)
Bonne journée :) et pensez à mettre le sujet en résolu ;)