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

如何判断循环中变量使用是否正确?BMI计算循环异常咨询

问题分析与解决

你的代码陷入无限循环的原因很明确:只在循环外计算了一次BMI,循环体内没有更新这个变量。

初始计算的BMI是 43/(1.6²)≈16.95,确实小于18。但进入循环后,你只修改了weight,却没有重新计算bmi——这意味着循环条件bmi<18永远为真,程序会一直递增weight并输出,直到数值变得极大。

修正后的代码

weight = 43
height = 1.6**2
while True:
    bmi = weight / height
    if bmi >= 18:
        break
    print(weight)
    weight += 0.1

或者把BMI计算放到循环迭代流程里,每次更新weight后同步更新bmi:

weight = 43
height = 1.6**2
bmi = weight / height
while bmi < 18:
    print(weight)
    weight += 0.1
    bmi = weight / height  # 每次更新weight后重新计算BMI

怎么判断循环中变量是否正确?

  • 先理清循环终止条件依赖哪些变量:比如这里终止条件是bmi<18,而bmi由weight和height决定,height是固定值,所以每次weight变化后,必须重新计算bmi,否则终止条件永远不会改变。
  • 检查循环体内是否更新了所有影响终止条件的变量:确保每次迭代时,判断条件用的都是最新的变量值,而非初始值。
  • 调试时可以临时打印关键变量(比如每次循环都打印bmi),直观看到变量变化是否符合预期,快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:03:19