java - para - manual de programacion android pdf
¿Cómo hacer un caso con múltiples condiciones? (5)
Cada caso es normalmente seguido por una "ruptura"; declaración para indicar dónde debe terminar la ejecución. Si omite el "break;", la ejecución continuará. Puede usar esto para admitir varios casos que deben manejarse de la misma manera:
char someChar = ''w'';
{
case ''W'':
// no break here
case ''w'':
System.out.println ("W or w");
break;
}
En la experiencia de 1 mes que he tenido con cualquier lenguaje de programación, asumí que las condiciones de switch
case
aceptarían cualquier cosa entre paréntesis como una cosa de comprobación booleana, es decir, estas:
|| && < >
¿Ya tu sabes?
algo como
char someChar = ''w'';
switch (someChar) {
case (''W'' ||''w''):
System.out.println ("W or w");
}
Lamentablemente, no parece funcionar de esa manera. No puedo tener cheques booleanos en caso de cambio.
¿Hay alguna manera de evitarlo?
Por cierto, lo siento mucho si estoy sonando confuso. Todavía no conozco los nombres de todo en este idioma: X
Cualquier respuesta apreciada
Los casos de cambio son ramas para evaluaciones alternativas de una expresión dada. La expresión se da en el paréntesis del switch y puede ser de tipo byte, short, char e int.
El cuerpo de una instrucción switch se conoce como un bloque switch. Una declaración en el bloque de conmutación se puede etiquetar con una o más etiquetas de caso o predeterminadas. La instrucción switch evalúa su expresión, luego ejecuta todas las declaraciones que siguen la etiqueta de caso correspondiente.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
Para una alternativa para cambiar la declaración ( múltiples si las condiciones ), creo que la mejor solución será usar una enumeración. Por ejemplo: Considere el siguiente caso:
public enum EnumExample {
OPTION1{
public double execute() {
Log.info(CLASS_NAME, "execute", "The is the first option.");
return void;
}
},
OPTION2{
public double execute() {
Log.info(CLASS_NAME, "execute", "The is the second option.");
return void;
}
},
OPTION3{
public double execute() {
Log.info(CLASS_NAME, "execute", "The is the third option.");
return void;
};
public static final String CLASS_NAME = Indicator.class.getName();
public abstract void execute();
}
La enumeración anterior se puede utilizar de la siguiente manera:
EnumExample.OPTION1.execute();
Esperemos que esto les ayude chicos.
Puedes conseguir un OR para casos como este:
switch (someChsr) {
case ''w'':
case ''W'':
// some code for ''w'' or ''W''
break;
case ''x'': // etc
}
Los casos son como un "goto" y varios gotos pueden compartir la misma línea para iniciar la ejecución.
Tu puedes hacer -
switch(c) {
case ''W'':
case ''w'': //your code which will satisfy both cases
break;
// ....
}