验证integer是否等于string
本文关键字:string 是否 integer 验证 | 更新日期: 2023-09-27 18:14:42
所以我试图简单地检查我的变量是否作为字符串输入,我想要if语句通过,而不是一个未处理的异常…
下面是我的代码:
Console.Write("Input: ");
int i;
bool success = int.TryParse("", out i);
if (success) {
Console.WriteLine("Enter Integer!");
} else {
i = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Output: ", i);
}
我哪里做错了?每次我输入一个字符串,我都没有得到if语句,只有崩溃!
代码中的问题是传递给TryParse
的值与传递给Convert.ToInt32
的值没有连接。你应该读入值,然后用相同的值调用TryParse
:
Console.WriteLine("Enter an integer:");
var s = Console.ReadLine();
int i;
if (int.TryParse(s, out i)) {
Console.WriteLine("You entered an integer");
} else {
Console.WriteLine("You did not enter an integer");
}
如果您希望继续读取,直到最终用户输入有效的int
,请添加一个循环,如下所示:
int i;
do {
Console.WriteLine("Enter an integer:");
var s = Console.ReadLine();
} while (!int.TryParse(s, out i));
我认为你应该这样做
Console.Write("Input: ");
int i;
bool success = int.TryParse(Console.ReadLine(), out i); //Getting the input and checking it
if (!success)
{
Console.WriteLine("Enter Integer!");
}
else
{
Console.WriteLine("Output: ", i);
}
在你的代码中,你得到的值在else语句中,如果你的输入不能被解析为int
,那么异常抛出。