回顾总体目标
计算器界面
我们已经绘制完了整个计算器的界面。 但是。。。 我们的界面是死的,用手触摸后,没有任何反应,完全不像一个可以使用的计算器。 那怎么办?
我们需要给每个按钮添加点击事件,让按钮能感应到我们手指的触摸,并给与适当的反馈。
进行最终的计算除了触摸反馈,我们最终还是需要一个程序来完成计算的过程,这样才能实现一个计算器的功能。
计算的流程- 收集所有按下的按钮的值,得到一个字符串。 如我们按下过12+34=,那我们最终收集到的字符串就是“12+34=”。
- 处理字符串 这是本计算器应用的核心所在。当我们思考程序如何处理的时候,其实我们先应该思考人是如何处理的。当我们看到黑板上写着“12+34=”时,我们是怎么思考的呢? 首先,我们看到12这个数,然后看到加号,再看到34,最后看到等号。 那为什么我们没有把加号算作前面数字12的一部分呢? 因为,加号不是数字,是一个符号,所以我们自然就不会把他当做12的一部分。同样,当我们看到等号的时候,就知道前面34就是最终完整的数字了。
为了得到最终的计算结果,我们可以这样做。每次用户输入一个数字或符号后,我们就进行判断。
- 如果是“C“,表明用户要清除计算结果,清空界面上显示的结果即可。
- 如果是“加减乘除”,我们则需要判断,前一个字符是否是数字,如果是则为合法输入,允许输入进来,否则直接丢弃。
- 如果是“.”,则要判断,前一个字符是否是数字,而且前面数字中不包含“.”,满足才是合法输入。
- 如果是“=”,就进行计算。计算过程:先把字符串进行拆分,如“12+34=”拆分为:12,+,34,=,然后把符号前后的两个数按照符号进行计算得到结果,显示在界面上。
- 如果是数字,则当做合法输入。(实际上这里面还有非法的输入场景,为了降低难度,就先简化处理了。)
整个计算器的实现逻辑框架,到这里就介绍完成了。 下一讲介绍具体的代码。