Utiliser le OU dans une boucle while [Résolu]

Signaler
Messages postés
141
Date d'inscription
samedi 4 février 2012
Statut
Membre
Dernière intervention
3 avril 2013
-
Messages postés
600
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
8 juillet 2016
-
Bonjour,

j'ai un problème avec un OU dans une boucle do...while. J'ai essayé de mettre || mais ça ne marche pas alors que ça marche très bien si je ne mets qu'une condition.

do
{
        //  traitement...
k++;
}
while(contenuFichier[i+k].equals("blablabla") == false 
            || contenuConfig[i+k].equals("toto") == false);


Savez-vous comment il faut faire ?

5 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
17
Bonjour.
Je pense que dans ta condition c'est un ET (&&) qu'il te faut.
Messages postés
141
Date d'inscription
samedi 4 février 2012
Statut
Membre
Dernière intervention
3 avril 2013

Je pense qu'il s'agit bien d'un où.

Je veux que le traitement s'arrête dès qu'il y a soit la ligne "blablabla" soit la ligne "toto".
Il faut qu'il s'arrête dans les deux cas.
Messages postés
141
Date d'inscription
samedi 4 février 2012
Statut
Membre
Dernière intervention
3 avril 2013

En fait tu avais raison mais je ne comprend toujours pas pourquoi.
Il y a quelque chose qui m'échappe.

Si je mets &&, le traitement ne devrait pas continuer tant que les 2 conditions ne sont pas validées ?
Messages postés
600
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
8 juillet 2016
10
Salut,

ben cela dépend de ce que tu veux comme condition...

//tant que la variable n'est pas à blablabla ou à toto
while( !contenuFichier[i+k].equals("blablabla") || !contenuConfig[i+k].equals("toto")) {
   ...
}


perso pour cette condition je mettrai plutot un && (ET) à la place du ||
Messages postés
600
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
8 juillet 2016
10
les conditions vont se completer...

//tant que la variable n'est pas à blablabla ou à toto
while( !contenuFichier[i+k].equals("blablabla") || !contenuConfig[i+k].equals("toto")) {
   ...
}
while( false || false) {
   ...
}
while( false ) {
   ...
}

ou

//tant que la variable n'est pas à blablabla ou à toto
while( !contenuFichier[i+k].equals("blablabla") || !contenuConfig[i+k].equals("toto")) {
   ...
}
while( true || false) {
   ...
}
while( true) {
   ...
}


c'est de la logique boolean quoi...