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
estfalse
:- demandez à l'utilisateur un nombre entre 0 et 10 avec
prompt()
etparseInt()
; - affectez le résultat à
result
; - si
result
n'est pas correct, affectezfalse
àcheck
(voir l'astuce); - sinon affectez
true
àcheck
pour sortir de la boucle;
- demandez à l'utilisateur un nombre entre 0 et 10 avec
- 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
.
711 Commentaires
-
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 Admin
while (!check) dans ce cas, équivaut à check = TRUE car il est initialisé à FALSE...
le 16/02/2023 à 10h45
-
yousstodo57100
j'ai le message suivant Dans la condition d'arrêt de votre boucle, vous avez choisis le mauvais opérateurle 20/01/2023 à 02h03
-
Patricio M Admin
Il te manque ceci while (check === false), mais la logique est bonne :)
le 20/01/2023 à 10h14
-
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) { result = parseInt(prompt("entrez un nombre entre 0 et 10")) if (result < 0 || result > 10 || !isNaN(result)) { check = false } else { check = true } } ```le 29/11/2022 à 22h03
-
Patricio M Admin
Robin, le bot demande ceci (check === false). Le reste est OK.
le 30/11/2022 à 08h34
-
dfradin-5
Je trouve la solution requise inutilement alambiquée.le 23/11/2022 à 15h39
-
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
ou est mon souci pleasele 31/10/2022 à 13h15
-
Patricio M Admin
tu as déclaré 2 fois 2 variables... fait attention à l'indentation du code...
le 02/11/2022 à 10h16
-
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 Admin
le ; après la ) ne doit pas exister. Indente bien ton code, please
le 28/09/2022 à 09h17
-
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 Admin
Enlève les ("') après le ELSE
le 27/09/2022 à 08h32
-
julien.blacteau-1
Je ne comprend pas pourquoi ça ne fonctionne pas...le 28/05/2022 à 15h23
-
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
var check = false; var result; while(check === false){ result = parseInt (prompt("Entrez un nombre entre 0 et 10 : ")); if(result<0 || result>10 || !isNaN(result)) { check = false; } else { check=true; } }le 16/05/2022 à 15h08
-
meriam Admin
Bonjour, votre code fonctionne correctement.
le 17/05/2022 à 13h25
-
pinto.ramos_f-61
Bonjour :), j'aurai besoin d'aide pour mon code svp : var check = false; var result; while(check===false) { result = parseInt(prompt("Ecrivez un nombre entre 0 et 10")); if ((result<0 || result>10 || isNaN(result))) { check===false; } else { check = true; } }le 30/04/2022 à 15h15
-
meriam Admin
Bonjour, au niveau de la structure if ,vous avez ajouter des parenthèses inutiles.
le 05/05/2022 à 13h13
-
sophigau-46
Bonjour, un petit coup de puce svp?? var check = false; var result; while (check===false) { var result = parseInt (prompt("Donner un chiffre entre 0 et 10 ?")); if (result<0 || result>10 || isNaN (result)) { check = false; } else { check = true; } } Merci!!le 26/04/2022 à 13h21
-
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
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 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
Bonjour quelle est mon erreur ? var check = false; var result; /* Votre boucle ici */ while (check===false) { var result = parseInt(prompt("un chiffre entre 0 et 10 ?")) if (result<0 || result>10 || isNaN(result)) { check == false } else { check = true }}le 22/04/2022 à 10h05
-
meriam Admin
Bonjour, vous avez dupliqué la déclaration de variable result.
le 25/04/2022 à 00h25
-
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 Admin
la variable result est déja déclarée au début du code.
le 05/04/2022 à 21h07
-
elodie97
Bonjour, j'ai toujours des boucles infini alors que je ne vois pas l'erreurle 04/04/2022 à 19h02
-
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
Commentaires les mieux notés