第四课输入时的细节处理——C#计算器编程教学
2016-05-04 15:10
477 查看
第一课中讲到,算式是有规矩的,不能任何输入都作有效输入,所以判断是否有效输入,这是第三课讲到了AddCaclString方法的负责处理。今天就专门讲这个方法。
先上代码:
那么这两个变量是干什么用的呢?
算式输入小数点、数字、运算符,你得判断现在输入在什么位置,是还是继续输入数字,还是输入小数点,本数字已经输入小数点了又再次输入小数点当然是作无效判断,那么输入了操作符,意思就是输入下一个数字,那么又进入下一轮判断,如此循环而已。
这段程序解决了输入判断有效性的问题,如果让你自己写,会是个什么样子?可能还有漏洞,比如我只是解决了算式开头输入0后不能输入其它数字的问题,但中间 数字没有解决。这其实无关程序运行结果,所以我没有再考虑这个问题。
第四课结语。
判断往往需要辅助变量,善于添加辅助变量是程序员的基本能力。
先上代码:
private void AddCaclString(bool isDecimal, bool isOP, string str) { if (!isDecimal && !isOP) { if (str == "0" && CaclString == "0") { return;//这是什么情况?你自己想。 } CaclString += str; isOPAdded = false;//你得先添加Cacl的私有变量 } else { if (isDecimal) { if (!haveDecimal) { CaclString += str; haveDecimal = true;//你得先添加Cacl的私有变量 isOPAdded = false; } } else { if (isOP && CaclString != "") { if (!isOPAdded) { CaclString += str; isOPAdded = true; haveDecimal = false; } else { CaclString = CaclString.Remove(CaclString.Length - 1, 1) + str;//这又是什么情况? isOPAdded = true; haveDecimal = false; } } } } }这里说到了要添加私有变量,就是协助判断输入的有效性和顺序的严谨性。
private bool haveDecimal = false;//是否已输入小数点。 private bool isOPAdded = false;//是否已输入操作符。所谓私有,就是外界不知道的,自己在操作过程中定义的变量是为了协助判断。这种编程思想必须了解和掌握,毕竟就是WinForm中的每一个控件都会有很多控制私有变量,编程就是要有这种添加辅助变量的基本素养。
那么这两个变量是干什么用的呢?
算式输入小数点、数字、运算符,你得判断现在输入在什么位置,是还是继续输入数字,还是输入小数点,本数字已经输入小数点了又再次输入小数点当然是作无效判断,那么输入了操作符,意思就是输入下一个数字,那么又进入下一轮判断,如此循环而已。
这段程序解决了输入判断有效性的问题,如果让你自己写,会是个什么样子?可能还有漏洞,比如我只是解决了算式开头输入0后不能输入其它数字的问题,但中间 数字没有解决。这其实无关程序运行结果,所以我没有再考虑这个问题。
第四课结语。
判断往往需要辅助变量,善于添加辅助变量是程序员的基本能力。
相关文章推荐
- 【C#设计模式-命令模式】
- C# vs2012中 -- 不可访问,因为它受保护级别限制
- /*C#:扩展方法*/ 《自学系列》
- C# 合并两个数组总结
- c# 解析和生成 DAE文件
- C# 点绕某点旋转某角度
- 【C#设计模式-模板模式】
- 第三课输入和显示——C#计算器编程教学
- 第二课用循环简化编程——C#计算器编程教学
- C# 判断字符为空的6种方法的效率实测对比
- 【C#设计模式-代理模式】
- C#获取串口列表实现实时监控串口
- 利用最小二乘法拟合任意次函数曲线(C#)
- C#操作共享文件夹
- C# 用DataSet读取数据
- C# 对文本文件的几种读写方法总结
- C# ListView 编写 ListView 实体类
- C#按字节长度截取字符串
- C# 图片文件文本string格式 传输问题
- 深入.NET平台和C#编程 错题录