Urgent : code java : Arraylist : boucle tourne à l'infini ?

Résolu/Fermé
sergio1236 Messages postés 9 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 13 juin 2013 - 22 mars 2013 à 07:25
sergio1236 Messages postés 9 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 13 juin 2013 - 22 mars 2013 à 18:15
Bonjour,
Besoin d'aide, svp !
page 13 énoncé : La dernière liste est signalée par son nom égal à la chaîne "*".
La boucle tourne à l'infini ? comment résoudre ce problème ?
Merci d'avance pour votre aide,


while(nl!="*")



Voici une partie de mon code :

public static void main(String[] args) {
ArrayList<ListeElectorale> liste1 = new ArrayList<ListeElectorale>();
ArrayList<ListeElectorale> liste2 = new ArrayList<ListeElectorale>();
int nbSieges=0;
double rest=0;
int i=0;
int j=0;
System.out.println("Entrez les nombres des sieges");
Scanner sc = new Scanner(System.in);
int sieges = sc.nextInt();
// création des listes électorales
System.out.println("Entrez le nom de la liste");
String nl = sc.next();
System.out.println(nl);
while(nl!="*")
{
for (ListeElectorale str: liste1)
{
double som=0;
double moy=0;
Iterator<ListeElectorale> itr = liste1.iterator();
if (itr.next().getVoix()>MainElections.MIN){
liste1.add(str);
som +=str.getVoix();
System.out.println(str);
}
moy=som/liste1.size();
rest = (itr.next().getVoix()%moy);
sieges=(int) (itr.next().getVoix()/moy);

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 mars 2013 à 18:00
On ne compare jamais la valeur de deux chaînes de caractères avec les opérateurs == != < > etc. Il faut utiliser les méthodes de la classe String !

while(!nl.equals("*"))
0
sergio1236 Messages postés 9 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 13 juin 2013
22 mars 2013 à 18:15
merci pour la réponse.
j'ai testé , ça marche. la boucle ne tourne plus à l'infini.
0