Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Solución ejercicio IR

aquí dejo una posible solución, funciona no se si es lo mas eficiente

public class TestIr { public static void main(String[] args) {

    double salario = 3300;

    boolean rangoUno = salario >= 1900.00 && salario <= 2800.00;
    boolean rangoDos = salario >= 2800.01 && salario <= 3751.00;
    boolean rangoTres = salario >= 3751.01 && salario <= 4664.00;

    double irUno = 0.075;
    double irDos = 0.15;
    double irTres = 0.225;

    if (rangoUno) {
        System.out.println("Su IR es de 7.5% y puede deducir 142, valor de IR = " + salario * irUno);
    } else {
        if (rangoDos) {
            System.out.println("Su IR es de 15% y puede deducir 350, valor de IR = " + salario * irDos);
        } else {
            if (rangoTres) {
                System.out.println("Su IR es de 22.5% y puede deducir 636, valor de IR = " + salario * irTres);
            }
        }
    }

}

}

2 respuestas

Saludos compañero.

No es eficiente declarar el porcentaje IR en variables, ya que estaríamos creando más líneas de código innecesariamente, para solucionar eso puedes exponer dichos porcentajes en un mensaje en consola.

Además de eso, no es buena práctica que declares condicionales if dentro de sentencias else, por esa razón es esencial que utilices sentencias if-else, lo cual te permite disponer de un mayor abanico de posibilidades.

Gracias por las correcciones, Tenes razón con los IF, el porcentaje de IR lo tengo en variables porque hago el calculo de dicho IR y arrojo su valor en el texto de salida, en programas grandes si hay un cambio de dicho porcentaje, es mas fácil cambiarlo de una variable previamente declarada y no andar buscando en el código, imagínate que ese valor se usa en varios cálculos y tener que andar cambiándolo en todas las partes del código.