该 代码主要是 计算 工资 税金
重构前:
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循环里, 求解?谢谢!
以上~~