检查用户是否输入文本验证- while

本文关键字:验证 while 文本 输入 用户 是否 检查 | 更新日期: 2023-09-27 17:50:52

我正试图写一段代码,将要求用户输入一些文本,(我到目前为止),如果用户键入一个数字,它会再次要求文本,直到用户键入文本,而不是数字。

            string input;
            int value;
            Console.WriteLine("Type in some text: ");
            input = Console.ReadLine();
            if (int.TryParse(input, out value))
            {
                Console.WriteLine("Please type in some text without numbers");
            }
            else
                Console.WriteLine(input); 
            Console.ReadLine();

我认为这可能是一个while循环,但不确定,

检查用户是否输入文本验证- while

试一试:

static void Main(string[] args)
    {
        string input;
        Console.WriteLine("Type in some text: ");
        input = Console.ReadLine();
        while(input.Any(char.IsDigit))
        {
            Console.WriteLine("Please type in some text without numbers");
            input = Console.ReadLine();
        }
    }

你是对的-你确实需要一个while循环。

您也可能有一个错误,因为文本123kjhasd不会解析为int,因此将被认为是有效的。如果你想检查所有的文本是不是一个数字,你可以使用LINQ,就像我上面所做的。

如果我误解了,数字和字母组合是可以的,那么当然保持你的表达式:

while(int.TryParse(input, out value)

你说的很接近,而且是正确的。

string input;
int value;
while (true) {
    Console.WriteLine("Type in some text: ");
    input = Console.ReadLine();
    if (!int.TryParse(input, out value))  // TryParse failed, we're good
    {
        Console.WriteLine(input);
        break;
    }
    Console.WriteLine("Please type in some text without numbers");
}