제가 일하고있는 프로그램의 일부는 패키지 무게를 인수로 취하고 그 무게에 따라 운송비를 계산하는 함수를 구현합니다. 다음과 같이 비용/파운드의 기준은 다음과 같습니다C++ 무게를 기준으로 운송비 계산하기
내가 사용 Package Weight Cost
-------------- ----
25 lbs & under $5.00 (flat rate)
26 - 50 lbs above rate + 0.10/lb over 25
50 + lbs above rate + 0.07/lb over 50
는 IF-경우 계산을하지만, 반복의 비트 같은 느낌이 다른-경우 :
const int TIER_2_WEIGHT = 25;
const int TIER_3_WEIGHT = 50;
const float TIER_1_RATE = 5.00;
const float TIER_2_RATE = 0.10;
const float TIER_3_RATE = 0.07;
float shipPriceF;
if(shipWeightF <= TIER_2_WEIGHT)
{
shipPriceF = TIER_1_RATE;
}
else if(shipWeightF <= TIER_3_WEIGHT)
{
shipPriceF = ((shipWeightF - TIER_2_WEIGHT) * TIER_2_RATE) +
TIER_1_RATE;
}
else
{
shipPriceF = ((shipWeightF - TIER_3_WEIGHT) * TIER_3_RATE) +
((TIER_3_WEIGHT - TIER_2_WEIGHT) * TIER_2_RATE) +
TIER_1_RATE;
}
return shipPriceF;
그래서, 문제는 ...이 작업을 수행하는 가장 좋은 방법입니까 아니면 다른 솔루션을 찾아야합니까?
당신이 가지고있는 것은 좋은 습관의면에서 뽀얀입니다. if-else if-else의 사용과 관련하여 반복되는 것은 없습니다. – VHS
또한 여기에는 재귀적인 것이 없습니다. –
이것이 유일한 계층이라고 가정하면이 부분이 정상적으로 보입니다. – Qix