Explication code

ziliass Messages postés 7 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 3 mars 2010 - 21 févr. 2010 à 04:25
Ickik Messages postés 193 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 mars 2010 - 26 févr. 2010 à 00:22
Bonjour,
Merci de m'expliquer ce code.

public void rechercher(String nom, String pren){
             boolean trouvé = false; //on considère que les éléments recherchés ne sont pas encore trouvé au début.
Eleve e = new Eleve(); 
Iterator it = liste.iterator(); 
while(it.hasNext() && !trouvé)	{  
e = (Eleve)it.next();  
if(e.getNom().equals(nom) && e.getPren().equals(pren)) 
t              rouvé = true; 
}
        if(trouvé) e.afficher();  
else System.out.println("Cet élève ne figure pas dans la liste !");
}
 

Merci

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
21 févr. 2010 à 10:03
salut,

recherche l'eleve qui a le meme nom et prenom dans
dans liste et l'affiche
0
ziliass Messages postés 7 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 3 mars 2010
23 févr. 2010 à 01:48
Bonjour,
Oui je sais, mais est ce que il est possible de mettre un commentaire pour chaque ligne du code. ça sera sympa de votre part.
surtout :

Eleve e = new Eleve();


et
e = (Eleve)it.next();


Merci beaucoup
0
Ickik Messages postés 193 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 mars 2010 2
26 févr. 2010 à 00:22
Hello,

voici une version simplifiée de ton code avec commentaires :


public void rechercher(String nom, String pren){ //faire passer un Eleve est plus objet
boolean trouvé = false; //on considère que les éléments recherchés ne sont pas encore trouvé au début.
Eleve e = new Eleve(); //ne sert a rien car tu instancies un objet pour rien
Iterator<Eleve> it = liste.iterator(); //recupère l'iterateur de la liste; cela permet de parcourir la List en testant l'existence d'un élément suivant
while(it.hasNext()) { //teste l'existence d'un élément suivant; on vérifie qu'on est pas à la fin de la List
e = (Eleve)it.next(); //récupère l'élément courant et avance dans la liste
if(e.getNom().equals(nom) && e.getPren().equals(pren)) //Pas bon il faut redéfinir equals et hashcode plutot de d'utiliser les paramètres
trouvé = true;
}
if(trouvé) e.afficher();
else System.out.println("Cet élève ne figure pas dans la liste !");
}


Un version corrigée donnerai :

public void rechercher(Eleve eleve){
Iterator<Eleve> it = liste.iterator();
while(it.hasNext()) {
Eleve e = (Eleve)it.next();
if(e.equals(eleve)) {
e.afficher();
return;
}
}
System.out.println("Cet élève ne figure pas dans la liste !");
}
0