友情提示:380元/半年,儿童学编程,就上码丁实验室。

第3课 编写代码——实现连续运算
一、代码修改
按照第一节中对连续运算功能的描述,我们需要对点击算符过程进行修改,即,点击算符不仅要执行【前数=后数、后数=0、算符=具体算符】三项操作,还要兼具等号的功能,计算出此前输入项的运算结果,这里我们需要依据某个条件来判断此次输入的算符是算符,还是等号算符,这个条件就是全局变量算符的当前值:如果算符=“”,则此次输入的算符就仅仅是算符,如果算符≠空,则此次输入的算符是等号算符。修改过的代码如图2-10所示。

二、测试及代码修正
对代码进行测试,如果是连续输入数字、算符、数字、算符…,程序能够正确运行,但是,当中间输入等号之后,再输入算符、数字、等号后,计算结果则是错误的。
我们需要找到错误的原因。通过模拟程序执行过程、跟踪变量值的方法,可以帮我们找到原因。问题出在输入等号之后,此时: 前数=计算结果 后数=0 算符=“”
接下来输入算符,由于算符=“”,因此执行点击算符过程的“如果…则”分支,第一行代码为【前数=后数】,注意这时后数=0,因此前数并没有保留住原来的计算结果,而是被改写为0,因此后面的计算结果必然是错误的。我们为点击算符过程添加一个条件语句,来排除掉上述错误,代码如图2-11所示。

表2-2 后数=0的所有可能情况
- 表中第1、2两条,当屏幕初始化或用户点击C之后,前数、后数均为0,此时点击算符键,再输入后数、等号(包括等号算符,下同),相当于做一次前数为零的运算,这在逻辑上是合理的,可以完成一次合理的运算;
- 表中的第3条,当用户点击CE后,前数不变,后数为0,此时点击算符键,不改变前数,只改写算符值,此后再输入后数及等号,可以完成一次合理的运算;
- 第4条,用户点击算符键后,后数为零,此时,如果用户再次点击算符键,不改变前数的值,只改变算符的值,相当于后输入的算符覆盖了前面输入的算符,这样,此后再输入后数及等号,可以完成一次合理的运算;
- 第5条,用户输入等号后,前数为运算结果,后数为零,算符为空,此时用户点击算符键,不改变前数的值,只改写算符的值,这样,此后再输入后数及等号,可以完成一次合理的运算。
以上分析虽然显得有些罗嗦,但不失为一种保障程序完备性的方法。在人类思维及机器逻辑之间存在着一个鸿沟,缜密的思考与分析,是跨越这道鸿沟的唯一方法,这是计算器应用给我们留下的经验。