我正在尝试编写一段代码,询问用户一些文本(我到目前为止),如果用户键入一个数字,它会再次询问文本,直到用户键入文本,而不是数字
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();
我认为这可能是一个循环但不确定,
任何建议都表示感谢。
答案 0 :(得分:1)
尝试一下:
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)
答案 1 :(得分:1)
你已经足够接近并且正确需要循环。
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");
}