【问题标题】:C# create an equation with Variables and If statementC# 使用变量和 If 语句创建方程
【发布时间】:2019-04-04 18:21:57
【问题描述】:

我正在尝试让用户输入他们的信息,程序将获取这些信息并找到您的 BMI。我的方程式和 if 语句有问题。我似乎找不到我的问题所在。

 double _bmi = (_poundsVal / (_inchesVal * _heightVal)) * 703;


  if (_bmi <= 18.5)
  {
  Console.WriteLine("Your BMI is" + _bmi.ToString() + "you are considered underweight");
  }
  else if (_bmi > 18.5 && _bmi <= 24.9)
  {
  Console.WriteLine("Your BMI is " + _bmi.ToString() + "you are considered normal weight");
  }
  else if (_bmi <= 25 && _bmi <= 29.9)
  {
  Console.WriteLine("Your BMI is" + _bmi.ToString() + "you are considered overweight");
  }
  else 
  {
  Console.WriteLine("Your BMI is" + _bmi.ToString() + "you are considered obese");
  }

【问题讨论】:

  • 没有理由尝试解析_bmi,它可能不应该是int
  • 现在您已经从int.Parse 切换到double.TryParse(来自您的上一个问题),如果解析失败,您的期望是什么?现在,它最终是0.0,但如果解析失败,你不应该测试它并让用户知道错误吗?换句话说,您更改了两件事(数据类型和解析模式),但只考虑了其中一件事的影响。
  • 那么,您的问题在哪里?你有错误吗?出乎意料的结果?
  • @HimBromBeere 目前说 _bmiVal 不存在
  • 好吧,你已经加倍了下划线Console.WriteLine("Your BMI is" + __bmiVal + ...);。似乎只是一个错字。

标签: c# equation


【解决方案1】:

_bmi 应该是 double 而不是 int。改变这一行:

int _bmi = (_poundsVal / (_inchesVal * _heightVal)) * 703;

double _bmi = (_poundsVal / (_inchesVal * _heightVal)) * 703;

其次,由于 _bmi 是双精度数,您不需要解析它,因此如果删除它并保留其内容:

if (double.TryParse(_bmi, out _bmiVal))

【讨论】:

  • 我做了你上面所说的更改,但我仍然遇到 _bmiVal 错误
  • 是的,因为您在 _bmi 中有答案,只需在 if 条件中使用 _bmi,实际上您可以删除 _bmiVal
  • 是的,因为 _bmi 有答案,所以 _bmiVal 也没有意义。
  • ok 改变了它,我得到的唯一错误来自这种类型的行(“你的 BMI 是” + __bmi+ “你被认为是正常体重”);这是说_bmi不存在
  • 当然你的变量是 _bmi 而不是 __bmi (单下划线) ;) 并且这样做:Console.WriteLine("Your BMI is" + _bmi.ToString() + ...);Console.WriteLine("Your BMI is {0}" , _bmi);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 2020-10-07
相关资源
最近更新 更多