第十七课预期策略选择——C#计算器编程教学

26 篇文章 0 订阅
23 篇文章 0 订阅
编程的一个难题是,方法我可以穷尽,但有些结果并非是用户的选择或期望,换个说法,有些表达具有二义性,可以这样,也可以那样,或者因为表达不够完整,因而结果是什么可能也有二义性。那么我们生成哪个结果呢?
本程序有很多这样的情况。比如,用户输入了计算式,他再按开根号,你是给他当前项的根号值,还是给算式结果的根号值?用户输入了不完整的算式,你怎样处理?反正这都考验的不是编程能力,而是策略选择能力。
一方面你可以坚持严密原则,算式不完整是吧,我不给答案,而提示错误,你也可以以善意的原则修改最可能错误,给最善意的结果。另一方面,你也可以定义不完整为完整,或者确定用户最可能的意图。

以上的文字是不是很绕?

比如这样两个算式:
9*
9*9*
我的处理方法是,前面的我看作是9*9,后面的也看作9*9。为什么这样呢?9*,我将之定义为9的平方,即定义不完整为完整。而后面这个,我按最善意的原则认为用户多按了*号,所以计算前删除掉。

比如取反,用户按了9*9*,然后按取反,你取哪个反?第三个数字还没出来呢!那最可能的意图是取第二个数的反。

第十七课结语。以上说的都会体现在编程过程中。你不能不会用户的意,也不能只会用户的意,而不能自已定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值