Exercice 2/6

Soit la variable result et check déjà déclarée et check qui vaut false.

Dans le fichier "script.js" :

  • écrivez une structure while;
  • tant que check est false :
    • demandez à l'utilisateur un nombre entre 0 et 10 avec prompt() et parseInt();
    • affectez le résultat à result;
    • si result n'est pas correct, affectez false à check (voir l'astuce);
    • sinon affectez true à check pour sortir de la boucle;
  • cliquez sur "Soumettre ma réponse".

Leçon 2/6

Exercice de rappel dans lequel il faut écrire un script qui demande à l'utilisateur un nombre entre 0 et 10 tant qu'il n'a pas donné un nombre correct.

Pour vérifier que result est correct, il faut vérifier si c'est bien entre 0 et 10 inclus. Et que c'est bien un nombre avec isNaN(result).

isNaN() vérifie si un nombre est incorrect. En effet prompt() renvoie une chaîne de caractères, parseInt() permet de convertir la chaîne en nombre ("11" > 11), si la chaîne est vide alors parseInt() renverra NaN.

Commentaires les mieux notés

708 Commentaires

  • olocard-16

    olocard-16

    Bonjour, quelle différence entre while(!check) et while(check === false) ? Le typage est-il nécessaire ?

    le 15/02/2023 à 10h29

  • Patricio M

    Patricio M Admin

    while (!check) dans ce cas, équivaut à check = TRUE car il est initialisé à FALSE...

    le 16/02/2023 à 10h45

  • yousstodo57100

    yousstodo57100

    j'ai le message suivant Dans la condition d'arrêt de votre boucle, vous avez choisis le mauvais opérateur

    le 20/01/2023 à 02h03

  • Patricio M

    Patricio M Admin

    Il te manque ceci while (check === false), mais la logique est bonne :)

    le 20/01/2023 à 10h14

  • robin.graffin-43

    robin.graffin-43

    je comprend pas cette erreur : Dans la condition d'arrêt de votre boucle, vous avez choisis le mauvais opérateur ``` var check = false; var result; /* Votre boucle ici */ while (check) &#123; result = parseInt(prompt("entrez un nombre entre 0 et 10")) if (result < 0 || result > 10 || !isNaN(result)) &#123; check = false } else &#123; check = true } } ```

    le 29/11/2022 à 22h03

  • Patricio M

    Patricio M Admin

    Robin, le bot demande ceci (check === false). Le reste est OK.

    le 30/11/2022 à 08h34

  • dfradin-5

    dfradin-5

    Je trouve la solution requise inutilement alambiquée.

    le 23/11/2022 à 15h39

  • Patricio M

    Patricio M Admin

    C'est pour comprendre la logique de l'exo: celle-ci te parait plus simple ? if(result < 0 || result>10 || isNaN(result))

    le 24/11/2022 à 14h30

  • gilles.jamain2-80

    gilles.jamain2-80

    ou est mon souci please

    le 31/10/2022 à 13h15

  • Patricio M

    Patricio M Admin

    tu as déclaré 2 fois 2 variables... fait attention à l'indentation du code...

    le 02/11/2022 à 10h16

  • Grumlyman

    Grumlyman

    Bonjour, j'ai essayé avec et sans, mais ça ne change rien. Le script est trop long à s'exécuter, et la croix rouge reste à côté de mon ELSE. Je n'arrive pas à comprendre pourquoi.

    le 27/09/2022 à 19h01

  • Patricio M

    Patricio M Admin

    le ; après la ) ne doit pas exister. Indente bien ton code, please

    le 28/09/2022 à 09h17

  • Grumlyman

    Grumlyman

    Bonjour, Je ne comprends pas ce qui ne va pas avec mon code, notamment avec mon Else. Merci de votre aide.

    le 26/09/2022 à 15h53

  • Patricio M

    Patricio M Admin

    Enlève les ("') après le ELSE

    le 27/09/2022 à 08h32

  • julien.blacteau-1

    julien.blacteau-1

    Je ne comprend pas pourquoi ça ne fonctionne pas...

    le 28/05/2022 à 15h23

  • meriam

    meriam Admin

    Bonjour, vous avez une erreur au niveau de cette ligne var result =; il faut supprimer le signe =

    le 02/06/2022 à 13h13

  • stannir

    stannir

    var check = false; var result; while(check === false)&#123; result = parseInt (prompt("Entrez un nombre entre 0 et 10 : ")); if(result<0 || result>10 || !isNaN(result)) &#123; check = false; } else &#123; check=true; } }

    le 16/05/2022 à 15h08

  • meriam

    meriam Admin

    Bonjour, votre code fonctionne correctement.

    le 17/05/2022 à 13h25

  • pinto.ramos_f-61

    pinto.ramos_f-61

    Bonjour :), j'aurai besoin d'aide pour mon code svp : var check = false; var result; while(check===false) &#123; result = parseInt(prompt("Ecrivez un nombre entre 0 et 10")); if ((result<0 || result>10 || isNaN(result))) &#123; check===false; } else &#123; check = true; } }

    le 30/04/2022 à 15h15

  • meriam

    meriam Admin

    Bonjour, au niveau de la structure if ,vous avez ajouter des parenthèses inutiles.

    le 05/05/2022 à 13h13

  • sophigau-46

    sophigau-46

    Bonjour, un petit coup de puce svp?? var check = false; var result; while (check===false) &#123; var result = parseInt (prompt("Donner un chiffre entre 0 et 10 ?")); if (result<0 || result>10 || isNaN (result)) &#123; check = false; } else &#123; check = true; } } Merci!!

    le 26/04/2022 à 13h21

  • meriam

    meriam Admin

    Bonjour, vous avez déclaré la variable result deux fois avec le mot clé var.

    le 28/04/2022 à 12h39

  • geoffrey.perez13400-2

    geoffrey.perez13400-2

    Bonjour, j'ai l'impression que mon code est bon mais on me dit qu'il y a une une boucle infinie quand je le valide? Pourriez-vous m'aidez?

    le 22/04/2022 à 10h24

  • meriam

    meriam Admin

    Bonjour, les structures if et else doivent être imbriqués à l'intérieur de la boucle while { }

    le 25/04/2022 à 00h26

  • benazry976-78

    benazry976-78

    Bonjour quelle est mon erreur ? var check = false; var result; /* Votre boucle ici */ while (check===false) &#123; var result = parseInt(prompt("un chiffre entre 0 et 10 ?")) if (result<0 || result>10 || isNaN(result)) &#123; check == false } else &#123; check = true }}

    le 22/04/2022 à 10h05

  • meriam

    meriam Admin

    Bonjour, vous avez dupliqué la déclaration de variable result.

    le 25/04/2022 à 00h25

  • Hong.VU-89

    Hong.VU-89

    il me mette ça: Dans votre boucle, dans votre première instruction vous devez assigner une valeur à votre variable result ???

    le 05/04/2022 à 09h47

  • meriam

    meriam Admin

    la variable result est déja déclarée au début du code.

    le 05/04/2022 à 21h07

  • elodie97

    elodie97

    Bonjour, j'ai toujours des boucles infini alors que je ne vois pas l'erreur

    le 04/04/2022 à 19h02

  • meriam

    meriam Admin

    Les structures de contrôle if et else doivent être imbriquées à l'intérieur de la boucle while.

    le 04/04/2022 à 20h53

script.js
index.html
var check = false; var result; /* Votre boucle ici */
<!DOCTYPE HTML> <html> <head> <title>Exercice rappel 2</title> <script src="script.js"></script> </head> <body> </body> </html>