c#当用户输入无效输入时,如何要求用户按任意键退出

时间:2016-10-10 04:55:04

标签: c#

我不知道如何让用户在输入无效输入时按任意键退出。

每当我尝试放Console.ReadKey()时,程序就会继续。当用户没有提供有效的输入时,我不知道如何让它停止。

这是一个截图 enter image description here

这是代码

 /* 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();

1 个答案:

答案 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);
}