Я должен очистить код Java, избавиться от множества вещей, но должен ли что-нибудь еще очистить, возможно, каким-то образом избавиться от нескольких операторов if, без полной перезаписи этот код? Не похоже, чтобы понять это, поскольку они настолько различны, чтобы складывать их в один «если». Есть идеи?Очистка Java-кода, несколько операторов if
public class Calc {
// employee types
public static final int SELLER;
public static final int COOK;
public static final int CHIEF;
public static void main(final String[] args) {
Calc c = new Calc();
System.err.println(c.pay(CHIEF) + " should be 66");
}
private int pay(final int type, final int h) {
int Sum = 0;
if (type == SELLER) {
if (h > 8) {
Sum = 20 * (h - 8);
Sum += 80;
} else {
Sum += 10 * h;
}
}
if (type == COOK) {
if (h > 8) {
Sum = 30 * (h - 8);
Sum += 15 * 8;
} else {
Sum += 15 * h;
}
}
if (type == CHIEF) {
if (h > 8) {
Sum = 66 * (h - 8);
Sum += 22 * 8;
} else {
Sum += 22 * h;
}
}
if (h > 20) {
if (type == SELLER) {
Sum += 10;
}
if (type == COOK) {
Sum += 20;
}
if (type == CHIEF) {
Sum += 30;
}
}
return Sum;
}
}
Действительно хорошее объяснение ... –
Это отличное объяснение, конечно! Это было написано моим учителем и, вероятно, должно было быть таким уродливым, как оно есть. У меня было ощущение, что ваш подход может быть достигнут каким-то образом, но я не мог этого сделать. Спасибо, что упростили мою учебную кривую! – Triinu86