所以我一直在发展我关于如何编写计算器的想法,但我每次都收到未处理的异常,但代码没有出现任何错误,在多次阅读代码后我不确定是什么出问题了。
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.###"));
}
最佳答案
你什么也看不到,因为代码抛出异常并且在没有告诉你任何事情的情况下完成,但如果你调试代码,你可以检测到它;)
the code does not present any errors
代码没有编译错误,但您的代码在运行时产生错误
因为这一行你有一个异常
Console.WriteLine("{0}+{2}={3}", num1, num2, ans.ToString("0.###"));
{0}+{2}={3} 必须是 {0}+{1}={2}
因为它们是
定义的数组中的索引num1, num2, ans.ToString("0.###")
关于c# - 知道为什么这个计算器控制台应用程序不起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40043658/