Frequentemente, quando ouço sobre a declaração do switch, é adiada como uma maneira de substituir cadeias longas se ... else. Mas parece que quando eu uso a instrução switch, estou escrevendo mais código do que eu estaria escrevendo se ... mais. Você também tem outros problemas, como manter todas as variáveis para todas as chamadas no mesmo escopo .
Aqui está um código que representa o fluxo que eu normalmente escrevo ( graças ao 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.";
}
Então eles querem que eu substitua isso por isso:
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.";
}
Parece muito mais código em uma sintaxe muito mais estranha. Mas existe realmente uma vantagem em usar a instrução switch?