返回課程

加總輸入數字

重要性:4

撰寫函式 sumInput(),它會

  • 使用 prompt 向使用者詢問值,並將這些值儲存在陣列中。
  • 當使用者輸入非數字值、空字串或按下「取消」時,結束詢問。
  • 計算並傳回陣列項目總和。

P.S. 零 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() );