レッスンに戻る

入力が数値であるまで繰り返す

重要性: 5

訪問者が有効な数値を入力するまで、数値を尋ねる関数 readNumber を作成してください。

結果の値は数値として返す必要があります。

また、訪問者は空行の入力または “CANCEL” の選択により処理を停止することができます。このケースでは、関数は null を返します。

デモを実行

テストと一緒にサンドボックスを開く

function readNumber() {
  let num;

  do {
    num = prompt("Enter a number please?", 0);
  } while ( !isFinite(num) );

  if (num === null || num === '') return null;

  return +num;
}

alert(`Read: ${readNumber()}`);

null/空行を処理する必要がある分、この解答はすこし入り組んでいます。

実際には、入力が「通常の数字」になるまで入力を受け入れます。null (キャンセル)と空行、両方とも数値形式では 0 なので、その条件にフィットしています。

停止した後、null と空行特別に扱う必要がります(null を返す)、なぜならそれらの数値への変換は 0 になるためです。

サンドボックスでテストと一緒に解答を開く