Urgent : code java : Arraylist : boucle tourne à l'infini ? [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
vendredi 22 mars 2013
Statut
Membre
Dernière intervention
13 juin 2013
-
sergio1236
Messages postés
9
Date d'inscription
vendredi 22 mars 2013
Statut
Membre
Dernière intervention
13 juin 2013
-
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

Messages postés
16110
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
13 février 2020
2 535
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("*"))
Messages postés
9
Date d'inscription
vendredi 22 mars 2013
Statut
Membre
Dernière intervention
13 juin 2013

merci pour la réponse.
j'ai testé , ça marche. la boucle ne tourne plus à l'infini.