Salut j'ai un erreur dans un programme en java poo il me donner un message [Résolu]

Signaler
Messages postés
4
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
19 juillet 2012
-
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
-
salut j'ai un erreur dans un programme en java poo il me donner un message
" illegal start of expression "
Dans cette partie :

Vector v = new Vector();
Voiture a = new Voiture();

public Voiture rechercher(int matricule){ //illegal start of expression
Voiture a1 = null;
for(int i=0; i<v.size();i++){
Voiture a = (Voiture) v.get(i);
if(matricule == a.getMatricule()){
a1=a;
}
}
return a1;
}

1 réponse

Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
23
Salut,

C'est une erreur de syntaxe mais elle n'apparait pas dans ce bout de code, même si l'erreur indique la ligne "public Voiture rechercher(int matricule){".

Donne nous le code entier de la classe si possible et utilise la balise code par la même occasion.

De plus :
- utilise des noms de variable plus parlant que "a1", "a", "v"
- si tu travailles avec Java 5 ou >, utilise la généricité, ça te simplifie le code
- dans la mesure du possible, dans le cas d'une itération sur un Iterable (Vector par exemple), utilise la boucle "for each" plus élégante que la boucle "for" classique

Exemple :
Vector<Voiture> voitures = new Vector<Voiture>();

public Voiture rechercher(int matricule) {

Voiture voitureTrouvee = null;

for (Voiture voiture : voitures) {

if (voiture.getMatricule() == matricule) {
voitureTrouvee = voiture;
}

}

return voitureTrouvee;

}


Je trouve que c'est plus compact et élégant.

Enfin, si tu recherches des voitures uniquement (ou généralement) par leur matricule, envisage de les indexer (avec une HashMap, par exemple). La recherche sera beaucoup plus rapide.