レッスンに戻る

入力数字の合計

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() );