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

本文关键字:何创建 创建 消息 错误 int 用户 数组 字符串 输入 如果 | 更新日期: 2023-09-27 18:20:21

基本上,我希望程序在向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();
    }

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

用替换此行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;
}

使用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。

这是一种非常常见的验证输入的方法。

请改用int.TryParse(),因为它允许您在不依赖抛出和捕获异常的情况下检查解析错误。

int tmp;
bool success = int.TryParse(Console.ReadLine(), out tmp); 
if (success)
{ 
    ft[i] = tmp;
}
else // error handling here