¿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.

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; } } 
  • El texto de Android debe aparecer en ambos lados en el
  • Widget de conmutador vertical Android
  • Ocultar texto predeterminado para el botón de Android
  • ¿Usando la cadena del recurso XML en el interruptor?
  • Obtener la intensidad de la señal de WIFI y datos móviles
  • Menú emergente personalizado de Android con conmutador
  • ¿Reutilizar las actividades anteriores?
  • Cómo agregar un escucha a un botón de conmutación?
  • ¿Usando cuerdas en una caja de conmutación para un menú?
  • Solicitud de switch / case con boolean
  • Cambiar del diseño main.xml a otro diseño
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.