【问题标题】:How to prompt again if user input is not valid? [duplicate]如果用户输入无效,如何再次提示? [复制]
【发布时间】:2019-02-16 13:14:05
【问题描述】:

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

在我的代码中,如果用户输入是字符串,那么它会显示“无效输入”并退出控制台

但我希望它再次询问“请输入您的第一个数字:”,直到答案是数字!

我尝试了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);

【问题讨论】:

  • “我尝试了 while 循环,但失败了。” - 循环正是你要这样做的方式。但我在你的代码中没有看到。你尝试了什么,它是如何失败的?
  • 我知道可以用 while 循环来完成,但我不知道该怎么做。这就是我的意思

标签: c# loops while-loop calculator


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多