بازگشت به درس

اعداد ورودی را جمع بزنید

اهمیت: 4

تابع sumInput() را بنویسید که:

  • از کاربر با استفاده از prompt درخواست مقدار می‌کند و مقدارها را در آرایه ذخیره می‌کند.
  • زمانی که کاربر یک مقدار غیر عددی یا رشته خالی وارد کند یا “Cancel” را فشار دهد، درخواست کردن را متوقف می‌کند.
  • جمع المان‌های آرایه یا محاسبه و آن را برگردانید.

پی‌نوشت: صفر 0 یک مقدار معتبر است، لطفا درخواست ورودی را با صفر متوقف نکنید.

[دمو]

لطفا جزئیات کوچک اما مهم راه حل را در نظر داشته باشید. ما value را درست بعد از prompt به عدد تبدیل نمی‌کنیم، چون بعد از value = +value ما نمی‌توانیم بین یک رشته خالی (نشان‌دهنده توقف) و صفر (مقداری معتبر) فرقی قائل شویم. در عوض آن را بعدا انجام می‌دهیم.

function sumInput() {

  let numbers = [];

  while (true) {

    let value = prompt("لطفا یک عدد وارد کنید.", 0);

    // باید لغو کنیم؟
    if (value === "" || value === null || !isFinite(value)) break;

    numbers.push(+value);
  }

  let sum = 0;
  for (let number of numbers) {
    sum += number;
  }
  return sum;
}

alert( sumInput() );