如果用户输入无效如何再次提示?

How to prompt again if user input is not valid?

我知道如何检查用户输入是否无效,但我不知道如何再次询问。

在我的代码中,如果用户输入的是字符串,则显示 "Invalid input" 并退出控制台

但我希望它再次询问 "Please enter your first number: " 直到答案是数字!

我尝试了 while 循环,但我失败了。

谁能告诉我怎么做?

    int Summation = 0;

    Console.Write("\n\t\t\tPlease enter your first number: ");
    string firstNumberInput = Console.ReadLine();

    if (!int.TryParse(firstNumberInput, out int FirstNumber))
    {
        Console.WriteLine("\n\t\t\tInvalid input!");
        Console.Beep();
        Environment.Exit(0);
    }

    Console.Write("\n\t\t\tPlase enter your second number: ");
    string secondNumberInput = Console.ReadLine();

    if (!int.TryParse(secondNumberInput, out int SecondNumber))
    {
        Console.WriteLine("\n\t\t\tInvalid input!");
        Console.Beep();
        Environment.Exit(0);
    }

    Console.Write("\n\t\t\tNow chose your operator(+, -, *, /): ");
    string Operator = Console.ReadLine();

    switch (Operator)
    {
        case "+":
            Summation = FirstNumber + SecondNumber;
            break;

        case "-":
            Summation = FirstNumber - SecondNumber;
            break;

        case "*":
            Summation = FirstNumber * SecondNumber;
            break;

        case "/":
            Summation = FirstNumber / SecondNumber;
            break;

        default:
            Console.WriteLine("\n\t\t\tThe operator is not valid!");
            Console.Beep();
            Environment.Exit(0);
            break;
    }
    Console.WriteLine("\n\t\t\tYour answer is {0}", Summation);

任何时候你想重复一个动作,你所说的就是"loop"。对于循环,您只需要重复一段代码和一个留在循环中的条件。例如,考虑这样的事情:

// declare your variables
var firstNumber = 0;
var validInput = false;

// loop until you have valid input
while (!validInput)
{
    // get the input
    Console.Write("\n\t\t\tPlease enter your first number: ");
    var firstNumberInput = Console.ReadLine();

    // validate it
    validInput = int.TryParse(firstNumberInput, out firstNumber);

    // if it was invalid, notify the user
    if (!validInput)
    {
        Console.WriteLine("\n\t\t\tInvalid input!");
        Console.Beep();
    }
}

这将不断循环,直到输入有效。