[Java] Sortie boucle while

Résolu/Fermé
LCoileux - 25 avril 2009 à 16:46
 Utilisateur anonyme - 25 avril 2009 à 17:28
Bonjour,
débutant en java, je suis en train de faire un programme qui me cherche les mots dans un fichier qui ne font pas partie d'une liste de mots-clés, et qui me les affiche.
Seulement voilà, je me suis servi d'une boucle while, cela marchait encore il y a quelques jours, et depuis hier, impossible de sortir de la boucle !
J'ai du modifier une partie du code sans m'en apercevoir en essayant de l'ameliorer, mais je ne voie pas où...

import java.io.*;
import java.util.*;

public class Test{	
	public static void main (String[] args){
		ArrayList al = new ArrayList();
		try {
		StreamTokenizer flot = new StreamTokenizer(new BufferedReader( new FileReader("ListeMotsClesEnzo.txt")));
		int lu = flot.nextToken();
		int i = 0;
		while (lu != StreamTokenizer.TT_EOF){
			al.add(flot.sval);
			lu = flot.nextToken();
			i++;
		}
		}
		catch (IOException e){ System.out.println("Erreur");}
		
		try {
		StreamTokenizer flot2 = new StreamTokenizer(new BufferedReader( new FileReader("TestEnzo.txt")));
		int lu2 = flot2.nextToken();
		String val = "";
		while (lu2 != StreamTokenizer.TT_EOF){
			val = "";
			for (int j=0; j<al.size(); j++){
				if (!(al.contains(flot2.sval))) 
						{val = flot2.sval;}
			}
		}
		if (!(val.equals(""))) {System.out.println(val);}
		lu2=flot2.nextToken();
		}	
		catch (IOException e){System.out.println("Erreur");}
	}
}


et c'est à ce niveau que ca bloque:

while (lu2 != StreamTokenizer.TT_EOF){
			val = "";
			for (int j=0; j<al.size(); j++){
				if (!(al.contains(flot2.sval))) 
						{val = flot2.sval;}
			}
		}


Merci d'avance
A voir également:

2 réponses

Oups, je vient de trouver d'où ca venait. Une simple (mais chiante) erreur de fermeture, je fermais la boucle trop tôt...
0
Utilisateur anonyme
25 avril 2009 à 17:28
Salut,

Cette boucle est nouvelle ?

while (lu2 != StreamTokenizer.TT_EOF){
val = "";
for (int j=0; j<al.size(); j++){
if (!(al.contains(flot2.sval)))
{val = flot2.sval;}
}
}

La boucle for (int j=0; j<al.size(); j++){
termine bien elle, mais comme lu2 reste à la même valeur la boucle while continue sans fin .

Cordialement,

Dan
-1