C# 如何要求用户只输入整数?
我想让用户输入一个数字,包括一个if语句选项。如果用户输入字母,最后一个问题将再次被询问 我试过这个,但似乎它只适用于字符串C# 如何要求用户只输入整数?,c#,if-statement,integer,C#,If Statement,Integer,我想让用户输入一个数字,包括一个if语句选项。如果用户输入字母,最后一个问题将再次被询问 我试过这个,但似乎它只适用于字符串 Console.Write("Write a number:"); int num = Convert.ToInt32(Console.ReadLine()); if (!int.TryParse(age, out num)) while(!int.TryParse(age, o
Console.Write("Write a number:");
int num = Convert.ToInt32(Console.ReadLine());
if (!int.TryParse(age, out num))
while(!int.TryParse(age, out num))
{
Console.WriteLine(...);
// ....
}
我在当前项目中使用了一个函数,它可能会帮助您,它只是检查输入字符串是否只包含数字:
bool isDigitsOnly(string inputString)
{
foreach (char c in inputString)
{
if (c < '0' || c > '9')
return false;
}
return true;
}
bool仅限数字(字符串输入字符串)
{
foreach(inputString中的字符c)
{
如果(c<'0'| c>'9')
返回false;
}
返回true;
}
您可能需要对其进行一些修改以满足您的需要,但它应该工作得足够好让我们提取用于此目的的方法:我们将要求用户输入有效值,直到他或她提供为止。所以我们有一个循环:
然后你就可以把它当作
int age = ReadInteger("Please, input age");
感谢您的反馈如果答案有帮助,请记住将其标记为已接受,以便其他人不要尝试回答此问题。感谢您的反馈对我也起到了作用。不过,这也将接受输入“123456789001234567890”,该输入太长,无法转换为
int
。它不会接受“-1”,它是一个完全有效的int
。
int age = ReadInteger("Please, input age");