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

如何在Matlab中正确使用while 1循环实现BMI计算器重复输入功能

问题解答

直接导致程序运行一次就退出的错误

你在单次BMI计算逻辑的末尾加了break语句,只要完成一次计算就会无条件执行该语句跳出while循环,这是程序直接结束的核心原因,按你的需求直接删除该行break即可。

其他需要修正的语法/逻辑错误

  • while 1后缺少Matlab语法要求的冒号,正确写法为while 1:
  • 输入和判断的顺序完全颠倒:你先判断Weight > 0 && Height > 0再执行输入操作,第一次运行时两个变量尚未定义会直接报错,应该先执行输入语句获取用户输入的数值,再判断数值是否合法。
  • 超重区间的判断条件写错:elseif (BMI<=25) && (BMI<=29.9)需要改为elseif (BMI>=25) && (BMI<=29.9),否则会出现逻辑判断冲突。
  • else后不允许加判断条件:你写的else (BMI>=30)不符合Matlab语法,要么删除后面的判断条件直接用else,要么改为elseif (BMI>=30)。

修正后的参考代码

while 1
    Weight = input('Please Enter Your Weight In kg: ');
    Height = input('Please Enter Your Height In m : ');
    if (Weight > 0 && Height > 0)
        BMI = Weight/(Height^2);
        if (BMI<=18.5)
            disp(['Health condition: THIN. Your BMI is ', num2str(BMI)]);
        elseif (BMI>=18.6) && (BMI<=24.9)
            disp(['Health condition: HEALTHY. Your BMI is ', num2str(BMI)]);
        elseif (BMI>=25) && (BMI<=29.9)
            disp(['Health condition: OVERWEIGHT. Your BMI is ', num2str(BMI)]);
        else
            disp(['Health condition: OBESE. Your BMI is ', num2str(BMI)]);
        end
    else
        disp('输入的体重、身高必须为正数,请重新输入');
    end
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:24:03