lunes, 9 de septiembre de 2024

■ Estructura selectiva Switch

 ■ Estructura Switch

Evaluando una variable tipo entero

int opcion;

switch (opcion) {
    case 1:
        // Código opcion = 1
        break;
    case 2:
        // Código opcion = 2
        break;
    case 3:
        // Código opcion = 3
        break;
    case 4:
        // Código opcion = 4
        break;
    case 5:
        // Código opcion = 5
        break;
    default:
        // Código si no fue ninguna de las anteriores
        break;
}

Evaluando una variable tipo String

String opcion;

switch (opcion) {
    case "a":
        // Código opcion = "a"
        break;
    case "b":
        // Código opcion = "b"
        break;
    case "c":
        // Código opcion = "c"
        break;
    default:
        // Código si no fue ninguna de las anteriores
        break;
}


■ Evaluando varias opciones por caso

En Java cada case puede evaluar varias opciones si las ponemos separadas por coma, ejemplo:

int opcion;

switch (opcion) {
    case 1, 2, 3, 4, 5:
        // instrucciones
        break;
    case 6, 7:
        // instrucciones
        break;
    case 8, 9 10:
        // instrucciones
        break;
}


O bien con strings:

String letra;

switch(letra) {
    case "a", "e", "i", "o", "u":
        System.out.println("Es vocal");
        break;
    default:
        System.out.println("Es consonante");
        break;
}



Comparando Switch con if

Si hicieramos el segundo ejemplo usando if, la estructura quedaría así:

    if (op.equals("a")) {
        // Código opcion = "a"
    } else if (op.equals("b")) {
        // Código opcion = "b"
    } else if (op.equals("c")) {
        // Código opcion = "c"
    } else {
        // Código si no fue ninguna de las anteriores
    }


La elección entre usar switch o if - else dependerá del problema que se quiera resolver, por ejemplo el switch es más eficiente cuando las opciones son valores exactos o constantes (como se muestra en los ejemplos) y el if - else es más adecuado cuando se requiere evaluar expresiones boleanas o rangos de valores, por ejemplo:

boolean usuarioRegistrado, usuarioVIP;

if (usuarioRegistrado) {
    if (usuarioVIP) {
        // Ambas son true
    } else {
        // usuarioVIP es false
    }
} else {
    // usuarioRegistrado es false
}

No hay comentarios:

Publicar un comentario