入力が数字になるまで繰り返す
重要度: 5
訪問者が有効な数値を入力するまで数字を要求するreadNumber
関数を作成してください。
結果の値は数値として返す必要があります。
また、訪問者は空行を入力するか「キャンセル」を押すことでプロセスを停止できます。その場合、関数は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
が返されるためです。