·
while (true)
{
    Console.WriteLine("请输入一个数字");
    var input = Console.ReadLine();
    if (input != "end")
    {
        try
        {
            var num = Convert.ToDouble(input);
            Console.WriteLine("你输入的数字的两倍是 {0}", num * 2);
        }
        catch (System.FormatException e)
        {
            Console.WriteLine(e.Message);
        }
    }
    else
    {
        Console.WriteLine("你输入了end,程序退出");
        break;
    }
}

你最初的代码问题不是字符串转换没学好,是 num 类型为 stringnum = Convert.ToDouble(...)double 赋值给 num,类型不匹配,报错。

catch 语句后不加限定,表示捕获所有异常,尽量避免,使用更精确的异常类型。

知其然还得知其所以然啊,遇到错误的地方要搞清楚原因,不要模棱两可地理解 flushed

Replies
1

好哒 感谢~