Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

[Duda] Que pasa si no uso los else?

En mi solución que funciona no coloque los else que coloca el profesor en su respuesta ...quisiera saber si esto que hice es una mala practica o que implicaciones tiene positivas o negativas ,gracias por sus respuestas a continuación les coloco mi codigo.` public class TestIR_2 { public static void main(String[] args) {

    double salario = 4500.0;
    double IR = 0;
    double deduccion = 0;

    if (salario >= 1900.00 && salario <= 2800.00) {

        IR = 7.5;
        deduccion = 142;

    }

    if (salario > 2800.01 && salario <= 3751.00) {

        IR = 15;
        deduccion = 350;

    }

    if (salario > 3751.01 && salario <= 4664.00) {

        IR = 22.5;
        deduccion =636;

    }

    System.out.println("Su IR es "+ IR + " y puede deducir de la declaración el monto de " + deduccion);
}`
4 respuestas

El else es parte de ciclo "If", se ejecuta cuando la condición es falsa, en caso de que no tenga el "else" y la condición sea falsa, el programa no ejecutará, brincará la condición y pasará a la siguiente línea de código, en caso de que todas las condiciones sean falsas, no imprimirá nada en consola

solución!

¡Hola Fran!

Te lo explicaré con un ejemplo muy simple :)

Tenemos el siguiente código:

if (color = "rojo"){
    accion1;
} else if (color = "verde"){
    accion2;
} else if (color = "azul"){
    accion3;
} else if (color = "amarillo"){
    accion4;
}

Pues ahora imaginemos que el color que se está evaluando, en realidad es el color rojo. Esto significa que se ejecutará la accion1. El resto de las evaluaciones ya no se resuelven porque ya se ha ejecutado la accion1 y no es necesario volver a validar el color, porque ya sabemos que es rojo y la sentencia if-else se lee como "si, sino si"... Es decir, es esto, y sino entonces es esto otro... Hay una condición que si se cumple, terminamos, si no se cumple, entonces seguimos evaluando. Finalmente en este trozo de código solo se evalúa 1 vez, entonces es un código de buen rendimiento ya que mientras menos instrucciones deba procesar nuestro computador, más rápido obtendremos nuestro resultado.

Pero, ¿Qué pasaría si omitimos los else?

if (color = "rojo"){
    accion1;
} if (color = "verde"){
    accion2;
} if (color = "azul"){
    accion3;
} if (color = "amarillo"){
    accion4;
}

Ahora la sentencia ha cambiado, ya no le estamos diciendo "si, sino si..." Ahora solo le estamos diciendo "si..."

Entonces, ya sabemos que el color es rojo, entonces se ejecuta la accion1. Pero también se evaluará la segunda opción, cuando el color es verde, claro que no se ejecutará la accion2 porque el color no es verde. Luego se evaluará la tercera y la cuarta condición, todas se van a evaluar.

Entonces, a diferencia de nuestra primera versión que solo hizo 1 evaluación, ésta segunda versión es más pesada, menos eficaz, porque el equipo tuvo que procesar la condición 4 veces, y te tardó un poco más en darnos una respuesta.

Esta es la diferencia entre ocupar los else, y no ocuparlos.

Ahhh ok ok muy bien explicado Jorge muchas gracias...

Tambien a ti -Nayeli gracias