c# - 知道为什么这个计算器控制台应用程序不起作用吗?

标签 c# console-application calculator 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.###"));
}

最佳答案

你什么也看不到,因为代码抛出异常并且在没有告诉你任何事情的情况下完成,但如果你调试代码,你可以检测到它;)

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/

相关文章:

c# - 使用 TCP 文件传输客户端发送时出现问题

c# - 半关闭TcpClient

c# - 我的类应该实现什么接口(interface)或方法来在 Console.WriteLine 中打印我想要的内容?

swift - Swift 中除以 0 时捕获错误

javascript - 计算器清除按钮

c# - 将空 XML 元素反序列化为 Guid.Empty

c# - 在不使用 Include 的情况下选择具有多个嵌套级别的实体

c# - 使用 Clipboard.GetFileDropList : how to check if that came from a cut or copy operation? 的控制台应用程序

c# - 在控制台窗口覆盖上书写?

java - 如何在 Java 中将字符串转换为运算符?