检查用户是否输入文本验证- 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循环,但不确定,
试一试:
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");
}