如何查看用户是否未在C#中输入有效条目

时间:2018-10-02 22:02:26

标签: c# loops

我想知道如果用户在下面的代码中输入了无效的条目,该如何输出。例如,如果他们输入了字符串字符或字符串字符和数字的组合。现在,如果输入了无效的条目,它只会中断程序。请回答最基本的方法是什么,因为我是编程新手!

bootstrap

2 个答案:

答案 0 :(得分:2)

您可以这样做:

int age;

if (int.TryParse(Console.ReadLine(), out age))
{
    if (age > 17)
    {
        Console.WriteLine("That's too bad! You will have to wait until next year!");
    }
    // etc
}
else
{
    Console.WriteLine("Please enter a valid input");
}

说明

int.TryParse是一种使用string并尝试将其转换为int的方法,如果转换成功,它将结果分配给age变量,然后如果返回true,则导致程序进入if块,否则返回false,并且程序进入else块。 age变量通过使用C#的output parameters feature进行分配,这是将变量从 outside 传递给方法的一种方法,而后者承诺会为其分配一些值。

答案 1 :(得分:1)

您可以尝试使用int.TryParse函数检查用户输入的数字是否为数字,这将返回一个bool

  • true用户输入是一个数字。
  • false用户输入的不是数字。

我将使用do ... while而不是while,因为这样可以使您的代码更清晰。

int age;
do {
    Console.Write("Please enter the persons age: ");

    if (!int.TryParse(Console.ReadLine(), out age)){
        Console.WriteLine("Please enter a valid entry");
    }
    else if (age == 17)
    {
        Console.WriteLine("That's to bad! You will have to wait until next year!");
    }
    else if (age < 18)
    {
        Console.WriteLine("That's to bad! You will have to wait a couple years until you can come in!");
    }

}
while (true);