如果用户将字符串输入到int数组中,如何创建错误消息?

时间:2015-11-03 18:36:23

标签: c# arrays

基本上我希望程序在将字符串输入到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();
    }

3 个答案:

答案 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