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

problemas al realizar el ejercicio TestIR con switch case

tira este error: - Cannot switch on a value of type double. Only convertible int values, strings or enum variables are permitted, no admite variables dobles el switch?

public class TestIrDos { 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;

    switch (salario) {     // EN ESTA LINEA ERROR

        case rangoUno:
            System.out.println("Su IR es de 7.5% y puede deducir 142, valor de IR = " + salario * irUno);
            break;

        case rangoDos:
            System.out.println("Su IR es de 15% y puede deducir 350, valor de IR = " + salario * irDos);
            break;

        case rangoTres:
            System.out.println("Su IR es de 22.5% y puede deducir 636, valor de IR = " + salario * irTres);
            break;

        default:
            System.out.println("Monto inválido");
            break;
    }

}

}

2 respuestas

Hola Alumno, cómo estás?

Gracias por compartir tu duda en el foro.

Muy probablemente, este error es porque en la versión 1.6, unicamente se puede utilizar la estructura swtich con ese tipo de datos, podrías verificar si no estás trabajando con una versión antigua por favor?

Espero haberte podido ayudar, saludos.

Si tienes alguna duda sobre el contenido de los cursos, estaremos aquí para ayudarte.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Alumno,

Como comenta Luis.puig el problema radica en que la instrucción switch no soporta el tipo de datos double, es por eso que marca el error.También existe un detalle en la instrucción switch, ya que dicha instrucción esta monitoreando a la variable salario (de igual forma no adminite variables tipo double). Por ultimo los case solo pueden contener constantes, no puede ser alguna variable.

Saludos.