A menudo, cuando escucho sobre la declaración de cambio, se pospone como una forma de reemplazar largas cadenas ... si no. Pero parece que cuando uso la instrucción switch estoy escribiendo más código del que estaría escribiendo si ... de lo contrario. También tiene otros problemas, como mantener todas las variables para todas las llamadas en el mismo ámbito .
Aquí hay un código que representa el flujo que normalmente escribo ( gracias 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.";
}
Luego quieren que reemplace eso con esto:
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 mucho más código en una sintaxis mucho más incómoda. Pero, ¿hay realmente una ventaja al usar la instrucción switch?