第四课输入时的细节处理——C#计算器编程教学
来源:互联网 发布:js 自定义window对象 编辑:程序博客网 时间:2024/06/06 21:41
第一课中讲到,算式是有规矩的,不能任何输入都作有效输入,所以判断是否有效输入,这是第三课讲到了AddCaclString方法的负责处理。今天就专门讲这个方法。先上代码:
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后不能输入其它数字的问题,但中间 数字没有解决。这其实无关程序运行结果,所以我没有再考虑这个问题。
第四课结语。
判断往往需要辅助变量,善于添加辅助变量是程序员的基本能力。
0 0
- 第四课输入时的细节处理——C#计算器编程教学
- 第三课输入和显示——C#计算器编程教学
- 第十一课私有变量——C#计算器编程教学
- 第八课等于之集合对象的操作——C#计算器编程教学
- 第二课用循环简化编程——C#计算器编程教学
- 第一课程序框架的构建——C#计算器编程教学
- 第十六课程序的测试和修改——C#计算器编程教学
- 第五课等于之解决思路——C#计算器编程教学
- 第六课等于之对象相加——C#计算器编程教学
- 第七课等于之算式还原——C#计算器编程教学
- 第九课等于之关键调用——C#计算器编程教学
- 第十课等于之调用关键调用——C#计算器编程教学
- 第十二课通知界面变更接口——C#计算器编程教学
- 第十三课功能键之开根号——C#计算器编程教学
- 第十四课功能键之取反——C#计算器编程教学
- 第十五课代码复用——C#计算器编程教学
- 第十七课预期策略选择——C#计算器编程教学
- 第十九课关于记忆存取——C#计算器编程教学
- linux创建静态库ar命令的使用说明
- c++ 八大排序算法
- 下拉刷新PtrFrameLayout组件的使用
- 原型模式
- AIX smitty安装软件时提示Unpack: file out of phase
- 第四课输入时的细节处理——C#计算器编程教学
- linux input subsystem虚拟键盘和鼠标
- Spring混合框架(Hibernate+JDBC/iBatis)的事务管理
- 剖析云计算中的“共享型数据库”
- 完整的最简单的谱聚类python代码
- UIButton
- 一个函数对象
- ipv4和ipv6比较
- maven update project 的问题