我正在尝试构建一个BMI计算器,而主函数中唯一可以做的就是方法调用。每当我运行以下代码时,计算答案都不会打印。我该如何解决?
public static Double EnterWeight(object sender, EventArgs e)
{
Console.Write("Enter Your Wieght In Pounds: ");
double Rweight = Convert.ToDouble(Console.ReadLine());
return Rweight;
}
public static double EnterHeight(object sender, EventArgs e)
{
Console.Write("Enter Your Height in Inches: ");
double Rheight = Convert.ToDouble(Console.ReadLine());
return Rheight;
}
public static double Calculation(double height, double weight)
{
double BMI = (weight / Math.Pow(height, 2) * 703);
return BMI;
}
static void Main(string[] args)
{
string name = EnterName();
//Console.WriteLine(name);
double weight = EnterWeight();
//Console.WriteLine(weight);
double height = EnterHeight(object sender, EventArgs e);
//Console.WriteLine(height);
double BMI = Calculation(height, weight);
Console.WriteLine("Your BMI is: ", BMI);
}
我的测试中还有一些额外的内容。
结果只是空白
答案 0 :(得分:0)
尽管代码很小,但看起来好像有几个问题。首先,您定义采用未使用参数的方法,例如object sender
和EventArgs e
。仅当在方法内部使用参数时,才应定义该方法的参数,这样就可以根据需要删除它们。
第二,当您调用EnterWeight
时,您是在方法调用内定义变量,而不是事先定义它们,然后使用变量名将其传递(这是解决此问题的方法)问题)。但是由于该方法实际上并不需要它们,因此可以将它们从方法中删除,从而从调用中删除。
最后,编写方法以从用户获取强类型输入时,有时最好创建一个更灵活的方法,该方法接受用于输入的“提示”字符串,然后使用{{1 }}方法在一个循环中,不断循环直到它们输入有效的输入。这样,您可以重复使用相同的方法从用户那里获取TryParse
,而只是传递不同的提示。
例如:
double
答案 1 :(得分:0)
您使用的Console.WriteLine错误。您需要使用{argumentNumber}来指示要打印的参数以及字符串中的位置。考虑以下内容(为了使您的代码得以编译,我必须进行一些其他调整。但是,为了回答您的直接问题,由于使用Console.WriteLine有点错误,因此您的BMI没有打印出来。
public static Double EnterWeight()
{
Console.Write("Enter Your Wieght In Pounds: ");
double Rweight = Convert.ToDouble(Console.ReadLine());
return Rweight;
}
public static double EnterHeight()
{
Console.Write("Enter Your Height in Inches: ");
double Rheight = Convert.ToDouble(Console.ReadLine());
return Rheight;
}
public static double Calculation(double height, double weight)
{
double BMI = (weight / Math.Pow(height, 2) * 703);
return BMI;
}
static void Main(string[] args)
{
//string name = EnterName();
//Console.WriteLine(name);
double weight = EnterWeight();
//Console.WriteLine(weight);
double height = EnterHeight();
//Console.WriteLine(height);
double BMI = Calculation(height, weight);
// Notice the {0}. I tell it where in the string to print the
// argument I passed in out, and the number indicates which argument
// to use. Most of .NET formatting works like this.
Console.WriteLine("Your BMI is: {0}", BMI);
}
另一种策略是使用$“”字符串,您可以在其中执行以下操作:
Console.WriteLine($"Your BMI is: {BMI}");