入力数字の合計
importance: 4
sumInput()
関数を記述します。
prompt
を使用して値をユーザーに尋ね、配列に値を格納します。- ユーザーが非数値、空の文字列、または「キャンセル」を押したときに尋ねるのを終了します。
- 配列項目の合計を計算して返します。
追伸0ゼロ0も有効な数字です。ゼロで入力を停止しないでください。
解決策の微妙だが重要な詳細に注意してください。prompt
の直後にvalue
を数字に変換しません。なぜならvalue = +value
の後は、ゼロ(有効な数値)から空の文字列(停止記号)を判断することができなくなるからです。代わりに後でそれを行います。
function sumInput() {
let numbers = [];
while (true) {
let value = prompt("A number please?", 0);
// should we cancel?
if (value === "" || value === null || !isFinite(value)) break;
numbers.push(+value);
}
let sum = 0;
for (let number of numbers) {
sum += number;
}
return sum;
}
alert( sumInput() );