C#,我的代码跳过try-catch语句中的if语句

时间:2017-04-08 12:03:40

标签: c#

当我输入“完成”时,它不会添加数字并显示结果。它只是跳过“catch”语句的“if”语句。我已经尝试将“if”语句放在不同的地方,但我无法做到,因为“结果”在“try”语句中。请帮忙。 它应该是这样的:当我输入数字(5),然后“输入”,然后是另一个数字(5.3),然后再次“输入”,它应该显示应该是“10.3”(5 + 5.3)的结果= 10.3)。非常抱歉长文,我感谢任何帮助。

        while (true)
        {

            Console.WriteLine("Enter a number or type \"done\" to see the average: ");
            var input = Console.ReadLine();

            try
            {
                var result = double.Parse(input);
                if(input == "done")
                {
                    Console.WriteLine(result += result);
                    break;
                }
                else
                {
                        continue;
                }
            }
            catch (FormatException)
            {
                Console.WriteLine("That is not valid input.");
            }

2 个答案:

答案 0 :(得分:1)

您的代码不正确: // since you want to aggregate within the loop, you have to declare sum // without the loop double sum = 0.0; while (true) { //DONE: You're summing up, right? It'll be sum, not average Console.WriteLine("Enter a number or type \"done\" to see the sum: "); var input = Console.ReadLine(); if (input == "done") { Console.WriteLine(sum); break; } try { sum += double.Parse(input); } catch (FormatException) { Console.WriteLine("That is not valid input."); } } 没有机会 解析进入{{1}}。您必须首先检查{{1}}

{{1}}

答案 1 :(得分:0)

您正在解析double数据类型的“done”,这就是为什么会引发formatException。