Spesso quando sento parlare dell'istruzione switch, è rimandata come un modo per sostituire le catene long se ... else. Ma sembra che quando uso l'istruzione switch sto scrivendo altro codice che vorrei scrivere solo se ... altro. Hai anche altri problemi come mantenendo tutte le variabili per tutte le chiamate nello stesso ambito .
Ecco un codice che rappresenta il flusso che normalmente scrivo ( 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.";
}
Poi 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ù scomoda. Ma c'è davvero un vantaggio nell'usare l'istruzione switch?