You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何存储用户输入的所有数值,输入0时展示全部输入、总和及平均值

需求与现有代码

需求

让用户每次输入一个数字,直到输入0时,输出以下内容:

  • 之前所有输入的数值(逐行打印)
  • 所有输入值的总和
  • 所有输入值的平均值

现有代码

let i = -1;
let total = 0;
let numPrompt;

do {
  numPrompt = prompt("")
  total += parseInt(numPrompt)
  i++;
} 
  
while (numPrompt != '0');  // do-while loop 

let avg = total/i;
console.log(total)
console.log(avg)

当前问题

现有代码仅能计算并输出总和与平均值,无法保存并打印所有历史输入值。


修改后的代码

let total = 0;
let numPrompt;
const inputs = []; // 存储所有有效输入值

do {
  numPrompt = prompt("请输入数字(输入0结束)");
  const num = parseInt(numPrompt);
  // 仅处理非0的有效数字输入
  if (num !== 0 && !isNaN(num)) {
    inputs.push(num);
    total += num;
  }
} while (numPrompt !== '0');

// 逐行打印所有输入值
console.log("您输入的所有数字:");
inputs.forEach(num => {
  console.log(num);
});

// 计算并打印总和与平均值
const avg = inputs.length > 0 ? total / inputs.length : 0;
console.log(`总和:${total}`);
console.log(`平均值:${avg}`);

关键修改说明

  1. 用数组存储输入记录:新增inputs数组保存用户输入的有效数字,避免丢失历史输入。
  2. 优化输入判断逻辑:添加!isNaN(num)过滤非数字输入,仅在输入不是0时才累加和存储,无需通过i=-1修正计数,直接用inputs.length获取有效输入数量,逻辑更直观。
  3. 逐行打印输入值:通过forEach遍历数组,逐行输出每个输入的数字。
  4. 边界情况处理:当用户直接输入0时,平均值设为0,避免出现除以0的错误。

内容的提问来源于stack exchange,提问作者user20423412

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:10:30