static void Main(string[] args)
{
//new个对象
Calculator cal = new Calculator();

//做事情
cal.Run();

}

///////////////////////////////

Calculator类: 这里还有点小问题没有进行处理,就是运算符输入的不符合要求的话,没有让它继续输入(没有让它直到输入成功为止才可以),而直接出现了判断是否退出的提示

public void Run()
{
//循环的进行输入-运算
while(true)
{
//输入数字
double firstNumber = ReadDouble();
double secondNumber = ReadDouble();

Console.WriteLine("请输入运算符: ");
string oper = Console.ReadLine();

//开始计算
//要异常进行处理: 除数不能为0,运算符的符号不正确
try
{
double dResult = Calculation(firstNumber, secondNumber, oper);
Console.WriteLine("{0} {1} {2} = {3}", firstNumber, oper, secondNumber, dResult);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

//打印是否退出
Console.WriteLine("\r\n是否继续计算(y/n)");
if (Console.ReadLine().ToLower() == "n")
{
break;
}
//Console.ReadKey();
}

}
/// <summary>
/// 判断输入的内容
/// </summary>
/// <returns></returns>
public static double ReadDouble()
{
double dNmber;

while (true)
{
Console.WriteLine("请输入第一个数字: ");
string input = Console.ReadLine();

//把用户输入的内容转城字符串
if (double.TryParse(input, out dNmber))
{
break;
}
else
{
Console.WriteLine("对不起, 您输入的不是一个数字,请重新输入...");
}
}
return dNmber;
}

/// <summary>
/// 计算的方法
/// </summary>
/// <param name="firstNumber"></param>
/// <param name="secondNumber"></param>
/// <param name="oper"></param>
/// <returns></returns>
public static double Calculation(double firstNumber, double secondNumber, string oper)
{
double sum;
//用switch case进行多条件的定值的判断
switch (oper)
{
case "+": sum = firstNumber + secondNumber;
break;
case "-": sum = firstNumber - secondNumber;
break;
case "*": sum = firstNumber * secondNumber;
break;
case "/":
//在代码运行的过程中,实际条件与预期条件可能不一致的时候,可以抛个异常
if (secondNumber == 0)
{
throw new Exception("除数不能为 0");
}
sum = firstNumber / secondNumber;
break;
default:
throw new Exception("请输入正确的运算符...");
}
return sum;
}

最新文章

  1. Oracle 增删改查
  2. IE和firefox火狐在JS、css兼容区别
  3. 【.NET】传智播客第【19】期就业班视频(高清无加密)
  4. POI 简单合并单元格
  5. yii2源码学习笔记(十三)
  6. javascript 学习笔记之面向对象编程(一):类的实现
  7. GridView获取单个单元格的值
  8. 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题
  9. 第一个输出程序 Console.WriteLine
  10. Docker 安装命令
  11. HTMLTestRunner测试报告中文乱码问题解决
  12. css3动画结束捕捉事件整理
  13. #1 初识Python
  14. Oracle 数据库、实例、用户、表空间、表之间的关系
  15. Mybatis Generator 使用com.mysql.cj.jdbc.Driver遇到的问题
  16. windows 8,关闭随意窗体都提示“已停止工作”的解决的方法
  17. sublime + emmet(Zen Coding)
  18. net网站发布-允许更新此预编译站点 及修改发布后内容
  19. Metapackage包
  20. springboot项目中文件的下载(解决中文乱码问题)

热门文章

  1. js的预编译机制
  2. iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好
  3. robotframework笔记5
  4. ubuntu 64位android项目报错的解决方案,打开64位 Ubuntu 的32位支持功能
  5. WLAN历史概述-01
  6. 《Java程序设计》学期总结
  7. Linux下如何查看自己的服务器有没有无线网卡
  8. Struts2动态结果(${})and全局结果(global-results)
  9. tab切换-自动、点击、内容变换
  10. Sql Server 主从数据库配置