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

JavaScript带条件数组求和代码求助:输入逻辑与求和实现问题

代码问题分析与修正

你的代码存在几个关键问题,导致无法正常运行:

  • 每次循环条件判断时重复调用prompt(),会让用户连续弹出3次输入框,体验极差且逻辑错误;
  • sum变量未声明,直接使用会抛出未定义错误;
  • 条件判断的逻辑写法错误,无法正确识别终止输入的情况。

以下是修正后的代码:

"use strict";
alert("Task 5");
const arr = [];
let sum = 0;
let input;

while (true) {
    input = prompt("Enter a number");
    // 判断终止条件:取消输入(null)、空字符串、转数字后是NaN
    if (input === null || input === "" || isNaN(Number(input))) {
        break;
    }
    const num = Number(input);
    arr.push(num);
    sum += num;
}

console.log("数组总和:", sum);
console.log("输入的数组:", arr);

修正说明:

  • 用一个input变量存储每次prompt()的结果,避免重复弹窗;
  • 提前声明sum变量并初始化为0,避免未定义错误;
  • 使用while(true)配合break的结构,更清晰处理终止条件:当用户取消输入(返回null)、输入空字符串,或者输入内容无法转成有效数字(isNaN(Number(input)))时,跳出循环;
  • 每次输入有效时,转成数字存入数组并累加到总和中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:45:34