Ecrivez une boucle while qui se répète tant que l'utilisateur n'a pas entré une valeur correcte via prompt(). En d'autres mots, prompt() s'affiche à chaque exécution de la boucle. Si l'utilisateur entre quelque chose, la boucle s'arrête, et une alert() affiche la valeur entrée dans le prompt(). Si l'utilisateur clic sur Annuler ou ne rentre pas de texte, la boucle continue et réaffiche une nouvelle prompt().
Écrivez votre code
Pas d'erreurs d'exécution ou de syntaxe
Solution
Un premier corrigé serait celui-ci. Une while infinie, qui ne sera stoppée que si le contenu du prompt() est satisfaisant
var input = '';
while (true) {
input = prompt('Entrez quelque chose de correct');
if (input) { // On regarde s'il y a quelque chose
break;
}
}
alert(input);
On aurait pu placer l'alerte dans le if, juste avant le break. Mais de manière générale, il faut éviter de surcharger le contenu des boucles.
Mais, c'est fort long pour si peu, et il est possible de faire plus court :
var input = '';
while (true) {
if (input = prompt('Entrez quelque chose de correct')) { // On regarde s'il y a quelque chose
break;
}
}
alert(input);
Il est également possible de laisser tomber le if, en incluant le test directement dans la condition de la boucle :
var input = '';
while (!input) {
input = prompt('Entrez quelque chose de correct');
}
alert (input);
Un commentaire ? Un bug ? Contactez-moi !
Vous souhaitez proposer une autre solution ?
Un autre exercice ou une précision ?
Vous avez rencontré une erreur ?
Un exercice ne fonctionne pas ?
OpenClassrooms
Commentez directement dans le sujet dédié aux exercices