¿Puede utilizar declaraciones condicionales en el caso de conmutación en Android?
Parece que no puedo encontrar un sencillo o un no a este en mi búsqueda. En Android, ¿hay alguna manera de usar una sentencia condicional en case-switch? Por ejemplo, con edad siendo un valor int:
switch (age){ case (>79): // Do this stuff break; case (>50): // Do this other stuff break; etc, etc
He intentado varias maneras de codificar esto (disparar completamente en la oscuridad) y venir para arriba con errores del compilador, y también he intentado una declaración anidad IF, pero no apoya la rotura así que la lógica se rompe y termina para arriba También ejecutando el código ELSE más bajo en el anidamiento. Me siento como switch-case es mi mejor apuesta, pero no puedo encontrar un ejemplo de la sintaxis correcta de lo que estoy tratando de hacer! Cualquier ayuda sería apreciada. Todos los ejemplos que encuentro solo usan switch-case para algunas cosas como si es un 1 hacer esto, si es un 2 hacer eso, pero sin hacer 100 declaraciones de caso para comprobar contra la edad, no estoy seguro de cómo otra cosa para trabajar esta.
- Actividad del conmutador androide de un hilo no ui
- Cómo cambiar el color de texto del conmutador en Android
- Para eventos de Android, ¿por qué las sentencias switch son más comunes que if-else?
- Diferenciar los diálogos individuales con DialogInterface.OnClickListener
- Android Cambiar entre actividades
- Obteniendo la instancia Switch dentro de ActionBar
- Cambiar los conmutadores a declaraciones "if-else"
- Android: cambia a la actividad sin reiniciarla
- Cómo detectar cuándo un conmutador se desliza, no se hace clic
- ¿O declaración en el interruptor / caso?
- Problema de conmutación: solo una opción visible
- ¿Por qué utilizar un hashmap?
- Cobertura de Jacoco para la declaración de switch
No. No puedes hacer esto,
switch (age){ case (>79): // Do this stuff break; case (>50): // Do this other stuff break; }
Necesitas un if
y else
,
if (age > 79) { // do this stuff. } else if (age > 50) { // do this other stuff. } // ...
Pruebe este hermoso y minimalista enfoque
age > 79 ? first_case_method() : age < 50 ? second_case_method() : age < 40 ? third_case_method() : age < 30 ? fourth_case_method() : age < 20 ? fifth_case_method() : ... : default_case_method();
Usted no puede hacer este uso si entonces declaración.
if(age > 79) { //do stuff } else if(age > 50) { //do stuff } else { /do stuff }
Etc …
Si está utilizando un bucle, es posible que desee ver ¿Qué es la palabra clave "continuar" y cómo funciona en Java? . Este no es un buen lugar para usar el interruptor.
if(age > 79) { //do stuff continue; // STOP FLOW HERE AND CONTINUE THE LOOP } else if(age > 50) { //do stuff continue; // STOP FLOW HERE AND CONTINUE THE LOOP }
Cada caso de switch se supone que es un entero o String desde JavaSE 7 y que está tratando de alimentar un valor booleano a lo que no es posible .Leer oracle doc para saber acerca de java cambiar en detalle http://docs.oracle.com /javase/tutorial/java/nutsandbolts/switch.html
No puede utilizar declaraciones condicionales con el switch
.
Pero usted puede hacerlo con las declaraciones if
! Si usted tiene un bucle que puede utilizar continue
para detener las líneas próximas y comenzar desde el principio del bucle más interno.
if(age>76){ // Code... continue; }else if(age>50){ // More Code... continue; }else{ // Even more code... continue; }
Se puede hacer. El código necesita ser ligeramente alterado.
public static void main(String[]arguments) { int x=1, age=55; switch(x) { case 1: if((age>=60)&&(age<200)) System.out.println("Senior Citizen"); case 2: if((age>=18)&&(age<60)) System.out.println("Adult"); case 3: if((age>=12)&&(age<18)) System.out.println("Teenager"); break; default : System.out.println("Child"); break; } }
- ¿Estoy invalidando toda la pantalla en cada llamada?
- ¿Cómo puedo manejar el cambio de orientación para que Fragmento no se cargue?