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

JavaScript BMI计算函数在BMI>25时输出错误,求排查原因

你的BMI计算函数问题分析与修复方案

你的问题根源在条件判断的顺序、区间逻辑错误,还有一处拼写小问题:

  • 条件顺序逻辑错误:当BMI超过25时,bmi > 18.6会先被匹配(25必然大于18.6),代码直接执行“正常体重”分支,根本不会走到超重的判断逻辑。
  • 区间定义错误:正常BMI范围是18.5 ≤ BMI ≤ 25,你用bmi >18.6不仅漏掉了18.5-18.6之间的数值,还没包含25这个临界值。
  • 拼写错误:overweigh应为overweight。

修复后的代码(方案一:从低到高判断)

let calculateWeight = parseFloat(prompt("Enter your weight"))
let calculateHeight = parseFloat(prompt("Enter your height"))

function calculateBmi(weight, height) {
  let bmi = weight / (height * height)
  if (bmi < 18.5) {
    console.log("You are underweight")
  } else if (bmi <= 25) { // 准确覆盖18.5到25的正常区间
    console.log("You are normal weight")
  } else { // 剩余所有情况都是BMI>25的超重状态
    console.log("You are overweight")
  }
  return bmi;
}
console.log(calculateBmi(calculateWeight, calculateHeight))

修复后的代码(方案二:从高到低判断,逻辑更直观)

let calculateWeight = parseFloat(prompt("Enter your weight"))
let calculateHeight = parseFloat(prompt("Enter your height"))

function calculateBmi(weight, height) {
  let bmi = weight / (height * height)
  if (bmi > 25) {
    console.log("You are overweight")
  } else if (bmi >= 18.5) {
    console.log("You are normal weight")
  } else {
    console.log("You are underweight")
  }
  return bmi;
}
console.log(calculateBmi(calculateWeight, calculateHeight))

调整后,当BMI超过25时会优先触发超重判断,同时准确覆盖所有区间的边界值,不会再出现逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:20:47