Your question is Explain the Code. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Alten's client is a mid-size retailer. As part of a code walkthrough round, you're shown a pricing helper from their order service and asked to explain it.
import java.util.List;
public class OrderPricing {
public double calculateTotal(List<LineItem> items, String customerTier) {
double subtotal = 0;
for (LineItem item : items) {
subtotal += item.getPrice() * item.getQuantity();
}
double discountRate = getDiscountRate(customerTier, subtotal);
double discounted = subtotal - (subtotal * discountRate);
double tax = discounted * 0.08;
return discounted + tax;
}
private double getDiscountRate(String tier, double subtotal) {
double rate = 0.0;
if ("gold".equalsIgnoreCase(tier)) {
rate = 0.10;
} else if ("silver".equalsIgnoreCase(tier)) {
rate = 0.05;
}
if (subtotal > 500) {
rate += 0.03;
}
return Math.min(rate, 0.20);
}
}
Walk through exactly what this code does, step by step, and flag anything you'd want to double-check or clean up if it were going into production.