基本上我希望程序在将字符串输入到int数组时显示错误消息,但我不知道如何在用户按下“*”字符时如何终止和输入:
static void Main(string[] args)
{
// array
int[] ft = new int[2];
for (int i = 0; i < 2; i++)
{
Console.WriteLine("number:");
ft[i] = Convert.ToInt32(Console.ReadLine());
}
Console.Read();
}
答案 0 :(得分:2)
使用TryParse
检查它是否为int:
for (int i = 0; i < 2; i++)
{
Console.WriteLine("number:");
string input = Console.ReadLine();
int num;
if(int.TryParse(input, out num))
ft[i] = num;
else
break;
}
如果是一个int,TryParse将返回true,num
将是int值。如果没有,TryParse
将返回false。
这是验证输入的一种非常常见的方式。
答案 1 :(得分:2)
将此行ft[i] = Convert.ToInt32(Console.ReadLine());
替换为
string input = Console.ReadLine();
if (input == "*") // first check, if user wants to exit the app
break; // or return;
int number;
if (!int.TryParse(input, out number)) // validate input
{
Console.WriteLine("not a number");
// here you could do i-- and continue;
}
else
{
ft[i] = number;
}
答案 2 :(得分:1)
使用int.TryParse()代替,因为它允许您检查解析错误,而不依赖于抛出和捕获异常。
int tmp;
bool success = int.TryParse(Console.ReadLine(), out tmp);
if (success)
{
ft[i] = tmp;
}
else // error handling here