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
相关产品推荐
相关产品推荐

