Pav*_*vel 1 c# calculator console-application unhandled-exception
所以我一直在开发关于如何编写计算器的想法,并且我每次都会继续获取未处理的异常但代码不会出现任何错误,并且在多次读取代码后我不确定出现了什么问题.
string inp;
int location;
double num1, num2, ans;
string[] ops = {"+", "-", "*", "/" };
Console.WriteLine("Calculator");
Console.WriteLine("Enter a Calculation.");
inp = Console.ReadLine();
if (inp.Contains(ops[0]))
{
location = inp.IndexOf("+");
num1 = double.Parse(inp.Substring(0, location));
num2 = double.Parse(inp.Substring(location +1));
ans = num1 + num2;
Console.WriteLine("{0}+{2}={3}", num1, num2, ans.ToString("0.###"));
}
else if (inp.Contains(ops[1]))
{
location = inp.IndexOf("-");
num1 = double.Parse(inp.Substring(0, location));
num2 = double.Parse(inp.Substring(location +1));
ans = num1 - num2;
Console.WriteLine("{0}-{2}={3}", num1, num2, ans.ToString("0.###"));
}
else if (inp.Contains(ops[2]))
{
location = inp.IndexOf("*");
num1 = double.Parse(inp.Substring(0, location));
num2 = double.Parse(inp.Substring(location +1));
ans = num1 * num2;
Console.WriteLine("{0}*{2}={3}", num1, num2, ans.ToString("0.###"));
}
else if (inp.Contains(ops[3]))
{
location = inp.IndexOf("/");
num1 = double.Parse(inp.Substring(0, location));
num2 = double.Parse(inp.Substring(location +1));
ans = num1 / num2;
Console.WriteLine("{0}/{2}={3}", num1, num2, ans.ToString("0.###"));
}
Run Code Online (Sandbox Code Playgroud)
你什么都看不见,因为代码抛出一个异常,并且在没有告诉你任何事情的情况下完成,但你可以检测到,如果你调试代码;)
代码不会出现任何错误
代码没有编译错误,但是您的代码在运行时会产生错误
由于这条线,你有一个例外
Console.WriteLine("{0}+{2}={3}", num1, num2, ans.ToString("0.###"));
Run Code Online (Sandbox Code Playgroud)
{0} + {2} = {3}必须为{0} + {1} = {2}
因为它们是由定义的数组中的索引
num1, num2, ans.ToString("0.###")
Run Code Online (Sandbox Code Playgroud)