Как запросить еще раз, если ввод пользователя недействителен? - PullRequest
0 голосов
/ 16 февраля 2019

Я знаю, как проверить, если пользовательский ввод недопустим, но я не знаю, как запросить снова.

В моем коде, если пользовательский ввод является строкой, он говорит «Неверный ввод» и выходит из консоли

Но я хочу, чтобы он снова спросил: «Пожалуйста, введите ваш первый номер:», пока ответ не будет номером!

Я пытался выполнить цикл, но мне не удалось.

Может кто-нибудь показать мнекак это сделать пожалуйста?

    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);

1 Ответ

0 голосов
/ 16 февраля 2019

Каждый раз, когда вы хотите повторить действие, вы говорите о «петле».Для цикла вам просто нужно тело кода для повторения и условие, чтобы остаться в цикле.Например, рассмотрим что-то вроде этого:

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

Это будет непрерывно повторяться до тех пор, пока ввод не будет действительным.

...