Często, gdy słyszę o instrukcji switch, jest ona odkładana jako sposób na zastąpienie długich, jeśli ... jeszcze łańcuchów. Ale wydaje się, że kiedy używam instrukcji switch, piszę więcej kodu, który napisałbym, gdyby ... inaczej. Masz również inne problemy, takie jak utrzymywanie wszystkich zmiennych dla wszystkich połączeń w tym samym zakresie .
Oto kod reprezentujący przepływ, który zwykle piszę ( dzięki diam )
String comment; // The generated insult.
int which = (int)(Math.random() * 3); // Result is 0, 1, or 2.
if (which == 0) {
comment = "You look so much better than usual.";
} else if (which == 1) {
comment = "Your work is up to its usual standards.";
} else if (which == 2) {
comment = "You're quite competent for so little experience.";
} else {
comment = "Oops -- something is wrong with this code.";
}
Potem chcą, żebym to zastąpił:
String comment; // The generated insult.
int which = (int)(Math.random() * 3); // Result is 0, 1, or 2.
switch (which) {
case 0:
comment = "You look so much better than usual.";
break;
case 1:
comment = "Your work is up to its usual standards.";
break;
case 2:
comment = "You're quite competent for so little experience.";
break;
default:
comment = "Oops -- something is wrong with this code.";
}
Wydaje się, że jest o wiele więcej kodu w znacznie bardziej niezręcznej składni. Ale czy naprawdę jest korzyść z używania instrukcji switch?