Comment ont met plusieurs conditions dans une boucle while ?

Signaler
-
Messages postés
596
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
27 novembre 2021
-
Bonjour,
J'essaie de faire un programme mais je suis bloque au debut.
Le while ici ne marche pas fin les deux conditions n'arrivent pas a etre verifier en meme temps:
public class test {

public static void main (String[] args) {
String l;

System.out.println ("Donnez moi vos lettres:");
l=Lire.S();
int stringLength = l.length();
while ( (l.contains ("aaa") == true ) && (l.length() !=7)) {
System.out.println ("Donnez moi 7 lettres");
l=Lire.S();

J'essaie a la base de demander a l'utilisateur de donner des lettres et cette boucle while doit verifier que l'utilisateur m'a donne que 7 lettres et que ca ne continet pas 3 a

Merci d'avance

5 réponses

Messages postés
16541
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
28 novembre 2021
577
Bonjour

Pour tes prochains post, merci d’utiliser la coloration syntaxique, voir ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Tu as posté ta question dans ta question dans le forum javascript, donc un langage dérivé de java dédié aux pages internet. Es tu bien sûr de ce choix ?

Il me semble que ton code est en java, pas en JavaScript.

Pour ton problème.
Sais tu comment fonctionne un Et logique ? Connais tu sa table de vérité ?

Peut-être devrais tu décomposer tes conditions et exécuter en pas à pas en espionnant les variables pour voir ce qui se passe

bool condition = true; // pour que ça rentre dans la boucle
while ( condition) { 
     System.out.println ("Donnez moi 7 lettres"); 
      l=Lire.S(); 
      bool condition1 = l.contains ("aaa");
      bool condition2 = l.length() !=7
      condition = condition1 && condition2; // espionne le contenu de condition1, condition 2 et condition
}


Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Messages postés
596
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
27 novembre 2021
7
Tu veux avoir choses : A et B.
Tu dois donc recommencer tant que tu n'as pas à la fois A et à la fois B.
Tu écris reboucler tant que !A et !B. C'est une erreur fréquente en logique de base.

La méthode que t'as donné Whismeril va te permettre de bien trouver l'opérateur à utiliser. Tu pourras en déduire quelle est la négation de "A et B".
Si un seul des deux parmi A et B est faux, on n'aura pas "A et B", c'est la condition pour recommencer.
Messages postés
16541
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
28 novembre 2021
577
Salut,

En fait, sa condition et A et !B.
Comme y’a pas la coloration et que sa variable s’appelle l ça prête à confusion.

Quoiqu’il en soit, avant de lui souffler la solution, je souhaitais lui faire voir par lui(elle?)-même que qu’un Et n’est pas le plus adapté et si le Et est imposé pour son exercice, il faut alors le poser différemment.
Messages postés
2
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
30 octobre 2021

Mon but est que les deux conditions fonctionnent en meme temps.
Sauf que la table de verite d'un "et"est soit les deux vrais soit les deux faux donc ca me pose probleme, il me faudrait que les deux vrais.
Messages postés
16541
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
28 novembre 2021
577
Déjà ça
Sauf que la table de verite d'un "et"est soit les deux vrais soit les deux faux

c'est incorrect.

Je t'invite donc à aller faire un tour sur wikipédia voir la table de vérité du ET.

Ensuite as tu fais les tests que je t'ai proposés?
Si oui qu'en déduits tu ?
Si non, j'ai rien à dire de plus
Messages postés
596
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
27 novembre 2021
7
Et tant que tu es sur Wikipedia, profites-en pour aussi regarder la table de vérité du OU, elle te sera grandement utile.