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 do while prompt


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut Boucle do while prompt
    Bonjour,
    je débute en JavaScript je fais des petits exercices avec les boucles : j'utilise la méthode prompt() pour demander l'âge, si l'âge est inferieur 1 j'alerte, par contre je n'ai plus la boite de dialogue qui demande l'âge pourtant j'ai utilisé une boucle do...while. J'ai essayé deux façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    do {
        let test = true;
        let votreAge = prompt('Votre âge ?');
        let answerUser = parseFloat(votreAge);
        if(answerUser<1) {
            alert('votre âge doit etre superieur à 0');
            test = false;
        }
    }while(test==false);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    do {
        let votreAge = prompt('Votre âge ?');
        if(votreAge<1) {
            alert('votre âge doit etre superieur à 0');
        } else {
            alert('votre age est ' + votreAge + ' ans');
        }
    }while(votreAge<=0);
    Merci pour votre aide.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 574
    Par défaut
    j'ai testé vos 2 codes dans la dernière version de firefox et ça a l'air de fonctionner.
    vous avez essayé dans plusieurs navigateurs ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut
    Bonjour,
    oui je viens de tester avec mozilla aussi je pense avoir une des dernières versions :
    j'ai la boite de dialogue 'votre âge'
    si je tape 0 (pour tester) j'ai la boite d'alerte 'votre âge doit être supérieur à 0; mais lorsque je clique sur ok la boite de dialogue qui demande l'âge ne s'affiche plus. Je souhaiterais quelle se réaffiche jusqu'à ce que l'utilisateur tape un âge supérieure à 0, c'est pour cela que je pensais utiliser la boucle do...while.
    merci

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Votre code provoque une erreur Javascript car la variable test étant définie dans le scope do elle n'est pas disponible dans la condition while() sous Chrome.

    Vous devez donc simplement la définir avant de l'utiliser.

    Je me suis également permis de refactoriser un peu le code :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let test = 0;
    do {
        let votreAge = prompt('Votre âge ?');
        test = parseFloat(votreAge);
        if (test < 1) {
            alert('votre âge doit etre superieur à 0');
        }
    } while (test < 1 || !test); // !test permet d'invalider un string vide

    Voici un lien test : https://tests.pierre-roels.com/do-while-question.html

  5. #5
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut
    Bonjour

    Ah je comprends mieux. Je vous remercie beaucoup pour votre aide et votre conseil
    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle Do ..while
    Par parp1 dans le forum Général Python
    Réponses: 2
    Dernier message: 11/06/2006, 13h32
  2. Réponses: 13
    Dernier message: 20/03/2006, 16h26
  3. [VBA] Boucle Do While
    Par jmde dans le forum Access
    Réponses: 4
    Dernier message: 16/10/2005, 20h23
  4. probleme de recordset dans une boucle do while
    Par Shoryu dans le forum ASP
    Réponses: 18
    Dernier message: 05/07/2004, 15h30
  5. Appel recurssif et boucle Do...While
    Par zsoh dans le forum Langage
    Réponses: 6
    Dernier message: 31/05/2004, 18h01

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