代码重构小例子

来源:互联网 发布:为什么mac截图不在桌面 编辑:程序博客网 时间:2024/06/05 01:56

该 代码主要是 计算 工资 税金

重构前:

if (dMoneyToTax <= 500){iFlag = 0;}else if (dMoneyToTax <= 2000 && dMoneyToTax > 500){iFlag = 1;}else if (dMoneyToTax <= 5000 && dMoneyToTax > 2000){iFlag = 2;}else if (dMoneyToTax <= 20000 && dMoneyToTax > 5000){iFlag = 3;}else if (dMoneyToTax <= 40000 && dMoneyToTax > 20000){iFlag = 4;}else if (dMoneyToTax <= 60000 && dMoneyToTax > 40000){iFlag = 5;}else if (dMoneyToTax <= 80000 && dMoneyToTax > 60000){iFlag = 6;}else if (dMoneyToTax <= 100000 && dMoneyToTax > 80000){iFlag = 7;}else  {iFlag = 8;}


重构后:

const double dWageToTax[] = {0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000};if (dMoneyToTax <= dWageToTax[0]) // // 缴税金额 小于 0 元{this->dTax = 0;return;}if (dMoneyToTax >= dWageToTax[8]) // 缴税金额 大于 10000元{this->dTax = 0;return;}int iFlag = -1;for (int i = 0; i < 8 ; i++){if (dMoneyToTax <= dWageToTax[i+1] && dMoneyToTax > dWageToTax[i]){iFlag = i;}}

如何能将代码重构到一个 for循环里, 求解?谢谢!


以上~~

原创粉丝点击