我有一个带有int
变量的控制台应用程序。我需要读取用户的输入,并确保如果输入不能转换为整数值,我可以告诉用户他们输入了无效的答案。
我该怎么做?这是我到目前为止的内容:
class Program
{
static void Main(string[] args)
{
Start:
Console.WriteLine("Enter two numbers");
var input1 = Convert.ToInt32(Console.ReadLine());
var input2 = Convert.ToInt32(Console.ReadLine());
if (input1 + input2 == 3)
Console.WriteLine("");
else if (input1 + input2 == 10)
{
Console.WriteLine("");
}
else
Console.WriteLine("");
goto Start;
}
}
答案 0 :(得分:4)
Convert.ToInt32(string)
将引发异常。
请使用int.TryParse(string, out var result)
。
在您的代码中,应该是
if (!int.TryParse(Console.ReadLine(), out var input1 ||
!int.TryParse(Console.ReadLine(), out var input2))
{
Console.WriteLine("You did not enter integers.");
goto Start;
}
中详细了解该方法。
P.s。顺便说一句,您应该避免在代码中使用goto。但这是另一回事。
答案 1 :(得分:1)
我建议您使用int.TryParse
(记录在here中)。
如果输入的不是整数,它将返回false
。
例如:
int num1;
string input = Console.ReadLine();
if(!int.TryParse(input, out num1))
{
Console.WriteLine("that's not a valid integer");
}
答案 2 :(得分:-1)
使用正则表达式,empty_check
最适合c#检查数字格式。看这个: