De if a switch
Como le podría hacer para cambiar de if a switch este programa en Java:
Introduces 3 medidas y te dice que tipo de triángulos es:
int lado1, lado2,lado3;
Scanner input = new Scanner(System.in);
System.out.print("Medida lado 1: ");
lado1 = input.nextInt();
System.out.print("Medida lado 2: ");
lado2 = input.nextInt();
System.out.print("Medida lado 3: ");
lado3 = input.nextInt();
if (lado1==lado2 && lado1==lado3)
{
System.out.println("Equilatero");
}
else
{
if (lado1 != lado2 && lado2 != lado3 && lado1 != lado3)
{
System.out.println("Escaleno");
}
else
{
System.out.println("Isosceles");
}
}
}
}
}
- jorge046's blog
- Inicie sesión o regístrese para enviar comentarios
En java las etiquetas que se
En java las etiquetas que se usan en los bloques del switch deben de ser constantes, si encuentras una expresión que resulte en un valor constante lo puedes usar ahí.
No se me ocurre ninguno pero si lo encuentras seria así:
Por ejemplo para el equilatero podría ser
pero me parece difícil encontrar una que aplique para al menos dos tipos de triangulos.
Espero que esto te sirva
Lógica del Switch
Hola.
El switch recibe una sola condición y compara el resultado, entonces tendrías que reducir las 3 condiciones a una sola.
Posiblemente asignando condiciones separadas usando un valor numérico y usando el operador ternario.
int valor=(condición)?valor1:valor2;
así déjalo
para qué lo quieres cambiar?
compilador...
Exacto.. puede que el compilador decida que es más optimo usar if's y lo convierta al código que al decompilarse produzca los if... la complejidad en términos de O(n) no cambiará, ni el tiempo de ejecución. Así que.. sería mejor que nos contaras un poco la razón del cambio :)