Aide en java

Bonjour,
j'ai une condition if dans mon code qui n'est jamais executé
quelqu'un pour m'aider svp c'est urgent

public static void main(String args[]){
try{
FileReader fl=new FileReader("fichier1.txt");
BufferedReader fr=new BufferedReader(fl);
int i=0;
FileWriter wr=new FileWriter("w_nb.txt",true);
BufferedWriter w=new BufferedWriter(wr);
String num;
String val;
for(int n=1;n<=1000000;n++){
i=0;
String c;
c=fr.readLine();
while(c!=null){

int k;
k=c.length();
char s;
s=c.charAt(k-1);
if(s==':'){
c=fr.readLine();
}
else{
String[] tab=c.split(",");
if(Integer.parseInt(tab[0])==n){//c'est ce if qui pose probleme
i++;
}
c=fr.readLine();
}
}
i=nb_film(n);
num=String.valueOf(n);
val=String.valueOf(i);
w.write(num);
w.write(",");
w.write(val);
w.write("\n");
fr.mark(1);
fr.reset();
}
fr.close();
w.close();
}
catch(IOException e){}

}

merci de votre aide
Configuration: Linux
Firefox 3.0

6 réponses

  1. Contributeur
    Qu'entends tu par "j'ai une condition if dans mon code qui n'est jamais exécutée" ?
    si tu ne rentre jamais dans le if, vérifi que la condition est vérifié.
    à ta place, je mettrai juste après :
    else 
       {
       w.write("le if n'est pas pris en compte car tab[0] vaut "+tab[0]+" et n vaut "+n);
       }
    1. Ou peut etre que tu veux faire 2 operations dans le if donc ambiguité pour lui
      ->essaie de le faire en 2 temps
      ...
      int c = Integer.parseInt(tab[0]);
      if(c==n){
      i++;
      } 
      ...
      
      --
      Satisfait ou remboursé ! ^_^
      1. Contributeur
        Pour moi, il n'y a pas d'ambigité, je ne voi pas comment interpréter ça autrement.
      2. j'ai essayé ta proposition mais ça ne marche toujour pas
    2. IL me semble que ton "n" est défini nulle part ! donc ton test sera toujours faux...
      1. Ah desolé dans le for.... :)
        essaie ceci :
        ...
        if(tab[0].equals(n+""){//je caste n en string
        i++;
        } 
        ...
        1. merci mais toujour rien car la valeur de "i" reste égale à 0
      2. Ah oui c'etait par rapport au "i"
        enleve le "i" apres le for car a chaque boucle il refait i=0 ! c'etait ca ton probleme je pense...
        1. non c'est pas le "i" et d'ailleur "i" doit etre egale à 0 pour chaque nouveau "n"
          je pense que le probleme c'est la boucle "for" car si je l'enleve je rentre bien dans le "if"
        2. Contributeur
          je ne voi pas en quoi la boucle for pourrai poser problème, ça viens d'ailleur (ou alors ton compilateur, c'est vraiment de la m...)
        3. @Char Snipeurtt à fait d'accord avec toi mais le probleme est si j'enleve la boucle for je rentre dans le "if"
          et je suis obligé de la garder cette boucle parce que sinon l'execution prendra une éternité
          maintenant ce que je veux c'est de savoir ou se trouve exactement mon probleme