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

CS0103错误:BMI计算器中BMIformula未在当前上下文定义

解决CS0103错误并修复你的BMI计算器

首先,咱们先搞定你遇到的CS0103错误:这个错误的原因很简单——你在使用BMIformula变量之前,没有声明它的类型。C#是强类型语言,所有变量在第一次使用前必须明确声明类型(比如double、int这类)。

除了这个错误,你的代码还有两个关键问题需要修复,不然计算出来的BMI结果完全不对:

  • BMI的计算公式写错了:正确的BMI公式是 体重(kg) ÷ (身高(m))²,你现在写的bodyWeight / bodyHeight * bodyHeight其实等价于bodyWeight,完全不符合逻辑,而且你输入的身高是厘米,得先转换成米(除以100)
  • 整数除法的精度问题:bodyWeight和bodyHeight都是int类型,直接做除法会截断小数部分,导致BMI计算结果严重不准,需要转成double类型来计算

下面是修正后的完整代码,每处修改都加了注释:

// 先声明BMIformula的类型为double,初始化为0
double BMIformula = 0;

Console.WriteLine("Geben Sie Körpergewicht ein: ");
// 这里可以考虑加输入验证,防止用户输入非数字的情况
int bodyWeight = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Geben Sie Ihre Körpergröße in cm ein: ");
int bodyHeight = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Ihre Eingaben: Körpergewicht: {0} Körpergröße: {1}", bodyWeight, bodyHeight);

// 修正BMI计算公式:先把身高转成米(除以100.0,用浮点除法),然后计算平方,再用体重除以这个值
BMIformula = bodyWeight / Math.Pow(bodyHeight / 100.0, 2);

// 输出BMI值,保留两位小数更直观
Console.WriteLine("Der BMI beträgt: {0:F2}", BMIformula);

// 修正判断条件的边界(比如原来的<=20和>=20会重复,改成<20更合理)
if (BMIformula < 20) {
    Console.WriteLine("Du bist im Untergewicht!");
} else if (BMIformula >= 20 && BMIformula < 25) {
    Console.WriteLine("Du bist im Normalgewicht");
} else if (BMIformula >= 25 && BMIformula < 30) {
    Console.WriteLine("Du bist Übergewichtig");
} else if (BMIformula >= 30 && BMIformula < 40) {
    Console.WriteLine("Du hast Adipositas");
} else {
    Console.WriteLine("Du hast Massive Adipositas");
}

Console.ReadLine();

额外提个优化点:当前代码没有处理用户输入非数字的情况(比如用户输入字母),会直接抛出异常。如果要更健壮,可以用int.TryParse来验证输入,比如:

int bodyWeight;
Console.WriteLine("Geben Sie Körpergewicht ein: ");
while (!int.TryParse(Console.ReadLine(), out bodyWeight))
{
    Console.WriteLine("Bitte geben Sie eine gültige Zahl ein!");
}

这样用户输入错误时会提示重新输入,程序不会崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:52:03