retour au cours

Répéter jusqu'à ce que l'entrée soit un nombre

importance: 5

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]

Open a sandbox with tests.

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.

Ouvrez la solution avec des tests dans une sandbox.