我不知道如何让用户在输入无效输入时按任意键退出。
每当我尝试放Console.ReadKey
()时,程序就会继续。当用户没有提供有效的输入时,我不知道如何让它停止。
这是代码
/* Variable */
int height = 0; // stores user's height input
int weight = 0; // stores user's weight input
const int factorBMI = 703; // stores user's constant bmi which is 703
double bmi = 0.0; // stores user's calculated bmi
/* User's Input */
Console.WriteLine("************************************************************************************************************************");
Console.WriteLine(" Please enter the person's height in inches:"); // Ask user to enter their height in inches
if (Int32.TryParse(Console.ReadLine(), out height))
Convert.ToDecimal(height);
if (height > 120) // Print an error message stating that if user's input is over 120 then an error pops
Console.Write("\n height should be less than 120 inches, please press any key to exit:");
if (height < 5) // Print an error message stating that if user's input is less than 5 then an error pops
Console.Write("\n height should be greater than 5 inches and if you entered a letter, \n please enter a number next time:\n");
Console.WriteLine("\n Please enter the person's weight pounds:"); // Ask user to enter their weight in pounds
if (Int32.TryParse(Console.ReadLine(), out weight))
Convert.ToDecimal(weight);
if (weight >= 999) // Print an error message if the user's input is more than 999 lbs
Console.Write("\n weight should be less than 999 pounds, please exit the application");
if (weight <= 0.5) // Print an error message if the user's input is less than 0.5 lbs
Console.Write("\n weight should be greater than 0.5, \n if you did not enter a number, please enter a number next time:\n");
/* Processing */
bmi = Math.Round(weight / Math.Pow(height, 2) * factorBMI, 1); // Calculates the user's BMI based on their height and weight input
/* Output */
Console.WriteLine("************************************************************************************************************************");
Console.WriteLine("\n the BMI for a " + height + "\" tall person who weighs: " + weight + "lb. is " + bmi); // Print user's height, weight and calculated BMI
if (bmi < 16) // If BMI is less than 16 then print the message
Console.WriteLine("\n base on your BMI you are severly underweight");
else if (bmi <= 18) // If BMI is less than 18 then print the message
Console.WriteLine("\n base on your BMI you are underweight");
else if (bmi <= 25) // If BMI is less than 25 then print the message
Console.WriteLine("\n base on your BMI you are healthy");
else if (bmi <= 30) // If BMI is less than 30 then print the message
Console.WriteLine("\n base on your BMI you are overweight");
else if (bmi > 30) // If BMI is more than 30 then print the message
Console.WriteLine("\n base on your BMI you are obese");
/* Exit */
Console.WriteLine("\n\n Thanks for using our program, you may now exit this program by presing any key:");// Print message telling the user to press any keys to exit application
Console.ReadKey();
答案 0 :(得分:0)
在if(Int32.TryParse ...)语句中添加else分支,如下所示:
if (!decimal.TryParse(Console.ReadLine(), out height))
{
Console.WriteLine("Not a valid number"); //etc.
Console.ReadKey();
Environment.Exit(0);
}
从你的其他错误输出中创建像这样的块
if (height > 120)
{
Console.WriteLine("Your text");
Console.ReadKey();
Environment.Exit(0);
}