ArrayIndexOutfOfBoundsException 20

Résolu/Fermé
Xelo-arx Messages postés 10 Date d'inscription mercredi 8 octobre 2014 Statut Membre Dernière intervention 25 août 2020 - 20 nov. 2014 à 13:42
fromagedebikette Messages postés 857 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 31 octobre 2016 - 20 nov. 2014 à 14:22
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 :

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


A voir également:

5 réponses

fromagedebikette Messages postés 857 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 31 octobre 2016 189
20 nov. 2014 à 14:01
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.
0
Xelo-arx Messages postés 10 Date d'inscription mercredi 8 octobre 2014 Statut Membre Dernière intervention 25 août 2020
Modifié par Xelo-arx le 20/11/2014 à 14:11
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 ?
0
fromagedebikette Messages postés 857 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 31 octobre 2016 189
20 nov. 2014 à 14:17
il suffit d'appeler la fonction soit par getTemps() soit par NomClasse.getTemps()
0
Xelo-arx Messages postés 10 Date d'inscription mercredi 8 octobre 2014 Statut Membre Dernière intervention 25 août 2020
20 nov. 2014 à 14:18
Merci beaucoup !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fromagedebikette Messages postés 857 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 31 octobre 2016 189
20 nov. 2014 à 14:22
de rien ;)
Bonne journée :) et pensez à mettre le sujet en résolu ;)
0