IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Boucle While tant que condition est différent de true


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Eleveur de mite en pull-over
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Eleveur de mite en pull-over

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut Boucle While tant que condition est différent de true
    Bonjour, je souhaite créer une boucle tant qu'une condition n'est pas remplie. La boucle while s'y prête, mais comme je n'incrémente pas ma boucle, je suis dans une boucle infinie.

    je teste la présence d'une adresse mail via la methode test() d'une regex (testMail). Cela me retourne donc un boolean.
    deleteMail.click() génère une nouvelle adresse mail, s'il y a correspondance, cela renvoie TRUE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while(testMail != true) {
        deleteMail.click()
        if(testMail == true){
            break
        }
    }
    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 647
    Par défaut
    je n'ai pas compris la partie "deleteMail.click() génère une nouvelle adresse mail".
    est ce que vous avez fait un code qui crée une chaine de caractères contenant une adresse e-mail ? ou alors vous appelez du code déjà présent ?
    expliquez nous aussi ce qu'il se passe à la sortie de la boucle.

  3. #3
    Candidat au Club
    Homme Profil pro
    Eleveur de mite en pull-over
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Eleveur de mite en pull-over

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut
    Merci d'avoir répondu.
    A la sortie de la boucle cela récupère l'adresse mail qui est testée dans la regex (qui est déclarée dans une constante en amont) et la copie dans le presse papier via les méthodes select() et execCommand()

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 647
    Par défaut
    si l'adresse est une constante, pourquoi vous ne faites pas le test qu'une seule fois ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Il vaudrait mieux nous en dire plus sur le contexte. Si tu attends la saisie dans un input setTimeout serait plus pertinent si non même remarque que Mathieu.

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour,

    c'est vrai qu'il manque un peu de matière pour savoir où est le problème; ta regexp? ta fonction?

    Le principe peut marcher mais, avec while, il ne faut pas que le test soit trop exigeant;

    Exemple:
    - j'essaie d'obtenir une adresse mail du type *****.*****@****.fr
    - il doit y avoir au moins un 1 dans la saisie

    (voir console)

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    const t="abcdefghijklmnopqrstuvwxyz1";
    let adresse="";
     
    function mail(){
    	for(let i=0;i<5;i++){
    		adresse+=t[Math.floor(Math.random()*t.length)];
    	}
    	adresse+=".";
    	for(let i=0;i<5;i++){
    		adresse+=t[Math.floor(Math.random()*t.length)];
    	}
    	adresse+="@";
    	for(let i=0;i<4;i++){
    		adresse+=t[Math.floor(Math.random()*t.length)];
    	}
    	adresse+=".fr";
    	return adresse;
    	}
    	while(!adresse.match(/\d/)){
    		if(adresse.length){
    			console.log("mauvaise adresse: ", adresse)
    		};
    		adresse="";
    		mail()
    }
    console.log("bonne adresse: ", adresse)

Discussions similaires

  1. Boucle while tant que variable existe
    Par victordot85 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/08/2013, 08h23
  2. Boucle while saute une condition
    Par JohnAnto dans le forum C++
    Réponses: 3
    Dernier message: 02/02/2013, 12h52
  3. Réponses: 9
    Dernier message: 02/04/2010, 12h25
  4. Boucle while avec 2 conditions OU
    Par loonis dans le forum Prolog
    Réponses: 4
    Dernier message: 25/05/2009, 22h05
  5. SELECT en tant que condition?
    Par cortex024 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/04/2007, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo