Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] ¿Que condicional debo utilizar if/else o if/else if?

Realice mi solucion con la condicion if anidada, compila y los resultados son los esperados. Mi pregunta es: ¿en tema de eficiencia del codigo es recomendable hacerlo de esta forma o con condicional if/else if?

public class tasaConif {

    public static void main(String[] args) {

        double salario = 5000.0;
        int deducible;
        boolean esDeducible;


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

            esDeducible = true;

        } else {

            esDeducible = false;

        }
        System.out.println("El valor del booleano es:" + esDeducible);

        if(salario >= 1900.0 && salario <= 2800.0 && esDeducible) {

            deducible = 142;
            salario = salario - deducible;
            System.out.println("Su deducible es de: " + deducible + " el restante es: " + salario);

        }else {

            if(salario >= 2800.01 && salario <= 3751.0 && esDeducible) {

                deducible = 350;
                salario = salario - deducible;
                System.out.println("Su deducible es de: " + deducible + " el restante es: " + salario);

            }else {

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

                    deducible = 636;
                    salario = salario - deducible;
                    System.out.println("Su deducible es de: " + deducible + " el restante es: " + salario);
                } else {

                    System.out.println("Su salario no entra en el esquema");
                }

            }


        }

    }
2 respuestas
solución!

En terminos de eficiencia de codigo, en la mayoria de los casos no hay una gran diferencia entre usar if anidados o una serie de declaraciones if/else if. La eleccion entre uno u otro enfoque se basa mas en la claridad y legibilidad del codigo y en la logica de la aplicacion.

Si los if anidados resultan en un codigo confuso y dificil de seguir, entonces probablemente sea mejor usar una serie de declaraciones if/else if. Esto hace que el codigo sea mas facil de leer y entender, lo que puede ayudar a prevenir errores y problemas futuros. Ademas, si la logica de la aplicacion cambia o se expande en el futuro, puede ser mas facil de manejar y modificar si se utilizan declaraciones if/else if.

Por otro lado, si la logica de la aplicacion se presta naturalmente a la anidacion de ifs y no hay demasiados niveles anidados, entonces usar ifs anidados puede ser mas apropiado. Ademas, en algunos casos, el uso de ifs anidados puede hacer que el codigo sea un poco mas eficiente en terminos de velocidad de ejecucion, especialmente si la evaluacion de las condiciones implica un costo significativo.

En general, la eleccion entre if anidados y declaraciones if/else if debe basarse en la claridad y la legibilidad del codigo, asi como en la logica de la aplicacion.

Regenerate response

Mauricio Oswaldo Banda Bernal, Muchas gracias por tu respuesta, veo que todo depende del enfoque que se tome en la solucion del problema, mas adelante en el curso pude observar que, segun la complejidad del algoritmo, tambien esta la opcion de case.

Gracias