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

JavaScript实现指定区间数字求和时结果始终返回0的问题

问题原因

函数调用时未传入参数是你得到结果始终为0的核心原因:
你在全局作用域中已经通过prompt获取到了first、last两个数值变量,但你定义的addition函数声明了两个形参first和last,实际调用时你写的是addition()没有传入任何参数,此时函数内部的first、last均为undefined,循环判断条件i <= last永远不成立,累加逻辑不会执行,最终输出的就是sum的初始值0。

修复方案

调用函数时传入全局的first和last即可:

let first = Number(prompt("Please insert the first number: "));
let last = Number(prompt("Please insert the last number: "));

function addition(first, last) {
    let sum = 0;
    for (let i = first; i <= last; i++) {
        sum += i;
    }
    console.log("Sum is: ", sum);
}

// 传入参数
addition(first, last);

可选优化

如果存在用户输入的起始值大于终止值的场景,可以在函数内增加参数顺序校验,避免循环不执行的问题:

function addition(first, last) {
    // 自动调整区间顺序
    if (first > last) [first, last] = [last, first];
    let sum = 0;
    for (let i = first; i <= last; i++) {
        sum += i;
    }
    console.log("Sum is: ", sum);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 10:00:03