程式碼重構小例子

NO IMAGE

該 程式碼主要是 計算 工資 稅金

重構前:

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迴圈裡, 求解?謝謝!

以上~~