![]() |
1
3
而Allan Wind has identified 作为错误的来源,我进一步建议您通过更改顺序来重构条件,以减少需要测试的内容,因为您可以假设之前测试的所有条件都是假的。
尽管它与这个非常简单的例子无关,但使用浮点数来处理货币是值得怀疑的,但使用单精度浮点数(与。
由于条件句是详尽无遗的(
一
分支是
总是
已执行)不需要初始化
为此修改Allan Wind的建议代码:
|
![]() |
2
3
编译器应该警告您没有传递类型为的变量
修复方法是将其更改为:
始终检查的返回值
要为指定一个值
当你测试时
下一个(可选)重构步骤是通过在将收入的最大界限映射到税收值的数组中查找税收值来消除重复的if-else条件:
这种方法的主要好处是,速率表现在是可以独立于代码进行更改的数据。您可以从文本文件中读取税率,或下载权威来源(如果您在美国,则为IRS)。
最后,我建议你消除类似的
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |