Répéter jusqu'à ce que l'entrée soit un nombre
Créez une fonction readNumber qui invite à entrer un nombre jusquâà ce que le visiteur saisisse une valeur numérique valide.
La valeur résultante doit être renvoyée sous forme de nombre.
Le visiteur peut également arrêter le processus en entrant une ligne vide ou en appuyant sur âCANCELâ. Dans ce cas, la fonction doit renvoyer null.
[Lancer la démo]
function readNumber() {
let num;
do {
num = prompt("Entrez un nombre s'il vous plaît", 0);
} while ( !isFinite(num) );
if (num === null || num === '') return null;
return +num;
}
alert(`Read: ${readNumber()}`);
La solution est un peu plus complexe quâelle nây paraît car nous devons gérer des lignes null / vides.
Nous répétons donc la demande jusquâà ce quâil sâagisse dâun ânombre régulierâ. Les lignes null (cancel) et vide répondent également à cette condition car, sous forme numérique, elles valent 0.
Après que nous nous sommes arrêtés, nous devons traiter spécialement les lignes null et vides (retourner null), car les convertir en nombre renverrait 0.