C# 实现简单的计算器(控制台版)

简介: 本案例实现一个控制台计算器,支持加减乘除四则运算,具备输入验证功能,可捕获无效输入与除零异常,确保程序稳定运行。

计算器支持加减乘除四则运算,处理输入验证和除零异常。

案例:控制台计算器

public class CalculatorApp
{
    // 计算方法
    public static decimal Calculate(decimal num1, decimal num2, string operation)
    {
        switch (operation)
        {
            case "+":
                return num1 + num2;
            case "-":
                return num1 - num2;
            case "*":
                return num1 * num2;
            case "/":
                if (num2 == 0)
                {
                    throw new DivideByZeroException("除数不能为0!");
                }
                return num1 / num2;
            default:
                throw new ArgumentException("无效的运算符!支持:+、-、*、/");
        }
    }
    public static void Main(string[] args)
    {
        Console.WriteLine("=== 简易计算器 ===");
        try
        {
            // 输入第一个数字
            Console.Write("请输入第一个数字:");
            string num1Str = Console.ReadLine()?.Trim() ?? "";
            if (!decimal.TryParse(num1Str, out decimal num1))
            {
                Console.WriteLine("输入的不是有效数字!");
                return;
            }
            // 输入运算符
            Console.Write("请输入运算符(+、-、*、/):");
            string operation = Console.ReadLine()?.Trim() ?? "";
            // 输入第二个数字
            Console.Write("请输入第二个数字:");
            string num2Str = Console.ReadLine()?.Trim() ?? "";
            if (!decimal.TryParse(num2Str, out decimal num2))
            {
                Console.WriteLine("输入的不是有效数字!");
                return;
            }
            // 计算并输出结果
            decimal result = Calculate(num1, num2, operation);
            Console.WriteLine($"{num1} {operation} {num2} = {result}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"计算失败:{ex.Message}");
        }
    }
}

运行效果:

=== 简易计算器 ===
请输入第一个数字:10
请输入运算符(+、-、*、/):*
请输入第二个数字:5.5
10 * 5.5 = 55.0
相关文章
|
2天前
|
机器学习/深度学习 人工智能 算法
【AI大模型面试宝典七】- 训练优化篇
【AI大模型面试宝典】聚焦强化学习核心考点:从MDP、贝尔曼方程到策略梯度、Actor-Critic框架,详解价值函数、优势函数与GAE等高频概念,结合蒙特卡洛与TD方法的偏差方差权衡,助你系统掌握RL原理与面试要点,轻松应对大模型算法挑战!
16 0
|
2天前
|
安全 C#
C# 泛型:实现类型安全的通用代码
泛型通过类型参数(如T)实现类型通用性,可定义不指定具体类型的类或方法,使用时再确定类型。示例中,Swap<T>方法可交换任意同类型变量,List<T>集合避免装箱拆箱,提升性能与安全。
|
2天前
|
C#
C# 字符串操作:常用方法汇总(含案例)
C# 提供丰富的字符串操作方法,如拼接、截取、替换和判断等。本文通过工具类案例演示如何高效处理字符串,提升开发效率与代码可读性。
|
2天前
|
C#
C# 实现简单的工厂模式
工厂模式通过工厂类封装对象创建逻辑,客户端无需关心具体实现,只需调用工厂方法即可获取所需对象,降低耦合度,提升扩展性与维护性。
|
2天前
|
C#
C# 日期时间操作:格式化与计算
DateTime类用于处理日期时间操作,支持格式化输出、加减计算及获取特定日期(如本月第一天)。示例代码展示了常用功能:格式化、计算日期差、增减天数等,便于高效处理时间数据。
|
2天前
|
C#
C# 文件操作:读取与写入文本文件
`File`类提供文件操作静态方法,适合快速读写;大文件推荐使用`StreamReader/StreamWriter`以降低内存占用。示例展示了文本文件的写入、追加与读取操作,支持自动创建目录,建议处理路径时注意权限并优先使用相对路径。
|
2天前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
2天前
|
C# 数据安全/隐私保护
C# 正则表达式:快速匹配与验证
正则表达式用于字符串模式匹配,如手机号、邮箱、密码验证等。C# 通过 `System.Text.RegularExpressions` 命名空间中的 `Regex` 类实现。本文示例展示了使用 `RegexHelper` 工具类进行常见验证:`IsPhoneNumber` 验证中国大陆手机号(1开头,共11位);`IsEmail` 校验邮箱格式;`IsValidPassword` 判断密码是否包含字母和数字且长度为8-20位;`ExtractNumbers` 提取字符串中所有数字。代码简洁高效,适用于数据校验与文本处理场景。
|
2天前
|
JSON C# 数据格式
C# JSON 序列化与反序列化:Newtonsoft.Json 用法
JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。
|
2天前
|
存储 缓存 安全
C# 字典(Dictionary):键值对存储的高效用法
`Dictionary<TKey, TValue>` 是键唯一且支持快速查找(O(1))的键值对集合,适用于存储映射关系。可通过 `Add` 添加、`TryGetValue` 安全获取、`Remove` 删除元素,遍历使用 `foreach`,建议优先使用 `TryGetValue` 提升性能。

热门文章

最新文章