I want to avoid lots of if-else statement.
I want to use another solution, because if there is situation, I have to use lots of condition.so this is not efficient. you can see in my code I use lots of if else statement, but that's not I want, some of them talk about map
if(purchaseAmount <= 100) {
if(numberOfItems <= 3) {
switch(deliveryDay) {
case NEXT_DAY:
cost = 25;
break;
case IN_TWO_DAYS:
cost = 10;
break;
case IN_A_WEEK:
cost = numberOfItems * 1.50;
break;
}
} else {
switch(deliveryDay) {
case NEXT_DAY:
cost = numberOfItems * 6.00;
break;
case IN_TWO_DAYS:
cost = numberOfItems * 2.50;
break;
case IN_A_WEEK:
cost = 0;
break;
}
}
} else { /* purchaseAmount > 100 */
if(numberOfItems <= 3) {
switch(deliveryDay) {
case NEXT_DAY:
cost = 35;
break;
case IN_TWO_DAYS:
cost = 15;
break;
case IN_A_WEEK:
cost = 10;
break;
}
} else {
switch(deliveryDay) {
case NEXT_DAY:
cost = numberOfItems * 7.50;
break;
case IN_TWO_DAYS:
cost = numberOfItems * 3.50;
break;
case IN_A_WEEK:
cost = numberOfItems * 2.50;
break;
}
}
}
return cost;
}
public double calculateShipmentCost(Shipment shipment) {
double cost = 0;
if(purchaseAmount <= 100) {
if(numberOfItems <= 3) {
switch(deliveryDay) {
case NEXT_DAY:
cost = 25;
break;
case IN_TWO_DAYS:
cost = 10;
break;
} else {
switch(deliveryDay) {
case NEXT_DAY:
cost = numberOfItems * 6.00;
break;
case IN_TWO_DAYS:
cost = numberOfItems * 2.50;
break;
}
}
} else { /* purchaseAmount > 100 */
if(numberOfItems <= 3) {
switch(deliveryDay) {
case NEXT_DAY:
cost = 35;
break;
case IN_TWO_DAYS:
cost = 15;
break;
}
} else {
switch(deliveryDay) {
case NEXT_DAY:
cost = numberOfItems * 7.50;
break;
case IN_TWO_DAYS:
cost = numberOfItems * 3.50;
break;
}
}
}
return cost;
}