c#写一份 开发一个简易的计算器,接受用户输入操作和操作符程序中,需要加入异常处理机制,以应对用户输入操作为非数值型数据。当用户输入错误操作时程序给出相应的提示而并非直接退出
时间: 2024-09-08 17:02:33 浏览: 52
在C#中开发一个简易计算器可以使用控制台应用程序来完成。下面是一个基础的示例代码,它接受用户输入的两个操作数和一个操作符,然后根据操作符进行计算。程序中包含了异常处理机制,用于捕获和处理非数值型数据的输入情况,以及操作符不匹配的情况。
```csharp
using System;
class SimpleCalculator
{
static void Main()
{
Console.WriteLine("请输入第一个数值:");
string input1 = Console.ReadLine();
Console.WriteLine("请输入操作符(+、-、*、/):");
string oper = Console.ReadLine();
Console.WriteLine("请输入第二个数值:");
string input2 = Console.ReadLine();
try
{
double number1 = double.Parse(input1);
double number2 = double.Parse(input2);
double result = 0;
switch (oper)
{
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
if (number2 == 0)
{
Console.WriteLine("除数不能为0。");
return;
}
result = number1 / number2;
break;
default:
Console.WriteLine("无效的操作符。");
return;
}
Console.WriteLine($"结果是:{result}");
}
catch (FormatException)
{
Console.WriteLine("输入中包含非数值数据,请输入有效的数值。");
}
catch (DivideByZeroException)
{
Console.WriteLine("除数不能为0。");
}
catch (Exception ex)
{
Console.WriteLine($"发生错误:{ex.Message}");
}
}
}
```
这段代码首先提示用户输入两个操作数和一个操作符,然后尝试将输入的字符串转换为`double`类型的数值。如果转换失败(例如用户输入了非数值字符),则会触发`FormatException`异常,程序将给出相应的提示。如果用户尝试除以零,则会触发`DivideByZeroException`异常。程序中还包括了一个`catch`块来捕获所有其他未预期的异常,以防万一出现其他错误。
阅读全文