Comment ont met plusieurs conditions dans une boucle while ?

Jerio78 - 28 oct. 2021 à 14:36
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 30 oct. 2021 à 16:56
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

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
Modifié le 29 oct. 2021 à 12:11
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
}


0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 11
29 oct. 2021 à 14:10
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.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
29 oct. 2021 à 14:27
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.
0
Jerio78 Messages postés 2 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 30 octobre 2021
30 oct. 2021 à 10:25
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.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
30 oct. 2021 à 10:36
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 11
30 oct. 2021 à 16:56
Et tant que tu es sur Wikipedia, profites-en pour aussi regarder la table de vérité du OU, elle te sera grandement utile.
0
Rejoignez-nous