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)
7
respuestas

Creo que hay otro error además de la falta de llaves...

En el código, además de faltar las llaves, en los dos casos plantea la condición de ser menor que y los salarios menores a 2600 estarían incluídos en las dos condiciones. Creo que es un problema de lógica aunque no estoy seguro.

public class TestIR {

    public static void main(String[] args) {

        double salario = 3300.0;

        if(salario < 2600.0) 
            System.out.println("Su tasa es del  15%");
            System.out.println("Puede deducir hasta R$ 350");

        if(salario < 3750.0) 
            System.out.println("Su tasa es del  22,5%");
            System.out.println("Puede deducir hasta R$ 636");
    }    
}
7 respuestas

hola compañero tendria que saber que error te da la consola pero lo que veo en los condicionales tienes dos if tendrias que colocar las llaves y el else por ejemplo ->

if{ ........ }else{......... }

Tenes que usar el conector && para poner dos condiciones en tu if, para armar los rangos entre dos valores tiene que cumplir dos condicones >= a y menor a

Gracias por las respuestas... me parece que me expliqué mal. No es un código mio, es un ejercicio de Alura. Está en Practicando Condicionales -> Trabajar con if.

Con sus respuestas se me ocurrió llevarlo a la consola en Eclipse y, efectivamente, si el salario es menor a 2600 la consola imprime los dos resultados. Creo que faltó eso de armar los rangos.

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

        double salario = 2300.0;

        if (salario < 2600.0) {
            System.out.println("Su tasa es del  15%");
            System.out.println("Puede deducir hasta R$ 350");
        }
        if (salario < 3750.0) {
            System.out.println("Su tasa es del  22,5%");
            System.out.println("Puede deducir hasta R$ 636");
        }
    }
}
solución!

Exacto, si no armas los rangos va a cumpl las dos condiciones, utiliza los conectores lógicos para ello. Si te sirvió mi respuesta por favor marca como resuelto. Saludos!!

Estoy de acuerdo si yo pongo un valor de salario de 2000 cumplirá ambas condiciones y me imprimira incluso ambas tasas, asi que creo que la primer condicion podria ser mas explicita asi tipo (salario >= 2600.0) y la segunda seria tipo (salario <2.600.0 && >=3700.0), creo q funcionaria mejor.

Creo que sí. Eso sería establecer los rangos. Igual, se entiende que escribieron el código con fines explicativos para otro tema. Creo que ppr eso se hizo así.

Creo que sería aún mas simple la respuesta agregando un else antes del segundo if de forma que, de no cumplir la primer condición del salario menor a 2600 (por ser mayor), consulta por un salario menor a 3700 y evitamos el uso de & por no haberlo aprendido aún y se refuerza el del else.