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

BMI计算器函数if分支内容不输出问题求助

修复BMI计算器函数的问题

你的代码存在三个核心问题,逐个修正即可正常输出提示文本:

1. 提前return导致后续代码不执行

原函数在计算完BMI后立刻执行return,直接返回了BMI数值,后面的所有if分支代码根本不会被运行。需要把return语句移到所有判断逻辑之后。

2. 条件判断逻辑错误

第二个if的条件bmi > 18.5 && bmi === 24.9是错误的,这只会匹配BMI恰好等于24.9的情况,正确的正常体重区间应该是大于18.5且小于等于24.9,所以要改成bmi > 18.5 && bmi <= 24.9。

3. 分支内的字符串未返回

每个if分支里的提示字符串只是定义了但没有返回,需要在每个分支里添加return,或者用变量存储结果最后统一返回。

修正后的完整代码

function bmiCalculator(weight, height) {
    var bmi = weight / Math.pow(height, 2);
    bmi = Math.round(bmi * 10) / 10; // 保留一位小数

    if (bmi <= 18.5) {
        return "Your BMI is " + bmi + ", so you are underweight.";
    } else if (bmi > 18.5 && bmi <= 24.9) {
        return "Your BMI is " + bmi + ", so you have a normal weight.";
    } else if (bmi > 24.9) {
        return "Your BMI is " + bmi + ", so you are overweight.";
    }
}

额外优化建议

  • 用else if替代多个独立if,这样只要匹配到一个分支就会停止判断,提升效率。
  • 可以给函数添加参数合法性检查,比如体重身高不能为负数或0,避免计算错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:55:58