Часто, когда я слышу об операторе switch, его откладывают как способ заменить длинные цепочки if ... else. Но, похоже, что когда я использую оператор switch, я пишу больше кода, который я бы просто написал, если ... еще. У вас также есть другие проблемы, такие как хранение всех переменных для всех вызовов в одной области .
Вот некоторый код, который представляет поток, который я обычно пишу ( благодаря 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.";
}
Затем они хотят, чтобы я заменил это на это:
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.";
}
Похоже, гораздо больше кода в гораздо более неудобном синтаксисе. Но есть ли преимущество в использовании оператора switch?