Un bout de code java qui ne marche pas!!!
Résolu
Bonjour,
un morceau de mon code ne marche pas et je ne comprends vraiment pas pourquoi.
Si quelqu'un pourra me trouver l'anomalie, je lui serai très reconnaissante.
voici mon code:
dans ce code quand on passe par le if, il imprime :
d
true
e
f
parcontre lorsqu'on passe par le else, il s'arrête avant d'imprimer le f :
d
l: 1
e
d
l: 2
e
d
Merci d'avance :)
Le rêve n'aboutit à rien, l'action à tout.
(J. FIAUX).
un morceau de mon code ne marche pas et je ne comprends vraiment pas pourquoi.
Si quelqu'un pourra me trouver l'anomalie, je lui serai très reconnaissante.
voici mon code:
int l=0;
while ((!findSRC) || (l>=s)){
System.out.println("d");
if (condition)
{findSRC=true;System.out.println("true");}
else {l++; System.out.println("l: "+l);}
System.out.println("e");
}
System.out.println("f");
}
dans ce code quand on passe par le if, il imprime :
d
true
e
f
parcontre lorsqu'on passe par le else, il s'arrête avant d'imprimer le f :
d
l: 1
e
d
l: 2
e
d
Merci d'avance :)
Le rêve n'aboutit à rien, l'action à tout.
(J. FIAUX).
2 réponses
-
Bonjour,
je ne sais pas pourquoi il n'affiche pas le "f", par contre tu peux ajouter des flush après tes println pour etre sur qu'ils s'affichent dans le bon ordre.
system.out.flush();
https://docs.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html#flush%28%29
Au moins tu seras sur de l'ordre d'affichage. Après pour le "f" je cherche encore ><
-
Merci beaucoup Defouille pour ta réponse. Mais voila j'ai trouvé ou c'atait le beug.
En fait je me ss trompé dans la condition du while fallait plutôt faire :while ((!findSRC) || (l<s))
Autrement on se trouve dans une boucle infinit et la condition du if dépend d'un vecteur ayant le l pour indice, donc il s'est bloqué! je me demande pourquoi est ce que je n'ai pas eu l'erreur "out of index"