Spesso quando sento parlare dell'istruzione switch, viene rimandato come un modo per sostituire lunghe catene se ... altro. Ma sembra che quando uso l'istruzione switch sto scrivendo più codice che scriverei solo se ... altro. Hai anche altri problemi come mantenere tutte le variabili per tutte le chiamate nello stesso ambito .
Ecco del codice che rappresenta il flusso che scrivo normalmente ( grazie a 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.";
}
Quindi vogliono che lo sostituisca con questo:
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.";
}
Sembra molto più codice in una sintassi molto più imbarazzante. Ma c'è davvero un vantaggio nell'usare l'istruzione switch?