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

Java数据类型练习排障:BMI计算变量未执行计算及结果显示问题求助

解决Java BMI计算程序无法输出结果的问题

嘿,我来帮你排查下问题!从你贴的未完成代码来看,核心问题是代码缺少了获取用户输入、执行BMI计算以及输出结果的关键环节,这才导致bodyMassIndex变量没机会执行计算,自然也看不到输出。咱们一步步来修复:

1. 先理清楚你代码的缺失点

你目前只完成了变量声明、Scanner初始化和输入提示的开头部分,但:

  • 没有调用Scanner的方法读取用户输入的身高和体重,导致这两个变量都是默认初始值(0)
  • 没有编写BMI的计算公式,bodyMassIndex一直是默认的0.0
  • 没有输出结果的语句,就算计算了也看不到
  • 大概率还漏了Scanner类的导入语句,编译会报错

2. 补全并优化后的完整代码

我把代码补全,同时做了一些实用优化,比如用double存储身高体重避免精度丢失,添加了结果格式化:

// 必须导入Scanner类,否则编译报错
import java.util.Scanner;

public class Exercise3 { 
    public static void main (String [] args) { 
        // 变量声明:用double存储身高体重,避免整数运算的精度问题
        double heightCm; 
        double weightKg; 
        double bodyMassIndex; 

        Scanner input = new Scanner (System.in); 

        // 获取用户输入的体重
        System.out.println("请输入您的体重(单位:千克):");
        weightKg = input.nextDouble();

        // 获取用户输入的身高(这里用厘米为例)
        System.out.println("请输入您的身高(单位:厘米):");
        heightCm = input.nextDouble();

        // 执行BMI计算:先把厘米转成米,再套用公式 BMI = 体重(kg) / (身高(m)²)
        double heightM = heightCm / 100;
        bodyMassIndex = weightKg / (heightM * heightM);

        // 格式化输出结果,保留两位小数更直观
        System.out.printf("您的BMI指数为:%.2f%n", bodyMassIndex);

        // 可选:添加BMI分类判断,让程序更实用
        String weightStatus;
        if (bodyMassIndex < 18.5) {
            weightStatus = "偏瘦";
        } else if (bodyMassIndex < 24) {
            weightStatus = "正常";
        } else if (bodyMassIndex < 28) {
            weightStatus = "超重";
        } else {
            weightStatus = "肥胖";
        }
        System.out.println("对应的体重状态:" + weightStatus);

        // 关闭Scanner,养成良好编码习惯
        input.close();
    }
}

3. 关键细节说明

  • 输入获取:必须用input.nextDouble()(或对应类型的方法)读取用户输入,否则变量会一直是默认值,计算出来的结果毫无意义
  • 计算逻辑:一定要把身高转换成米(如果输入的是厘米),否则公式会完全错误
  • 输出语句:用System.out.printf()可以格式化数字,比println()输出的结果更美观易读
  • 类型问题:如果坚持用int存储身高体重,计算时要做强制类型转换,避免整数除法导致的精度丢失,比如:bodyMassIndex = (double)weightKg / Math.pow((double)heightCm / 100, 2);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:08:53