Часто, коли я чую про заяву перемикача, його відкладають як спосіб заміни довгих, якщо ... інакше ланцюги. Але здається, що коли я використовую оператор переключення, я пишу більше коду, який я б просто писав, якби ... ще. У вас також є інші проблеми, такі як збереження всіх змінних для всіх дзвінків в однаковій області .
Ось який-небудь код, який представляє потік, який я зазвичай пишу ( завдяки 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?