当我输入“完成”时,它不会添加数字并显示结果。它只是跳过“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.");
}
答案 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。