TransWikia.com

Estructura switch-case. ¿Los valores de los cases deben ser sí o sí valores únicos?

Stack Overflow en español Asked by Skywalker on December 29, 2020

Pregunta de novato: ¿puedo usar una estructura de estas para poner un número de tipo entero dentro de la expresión que acompaña al switch y que los cases se activen cuando ese número se encuentre dentro de distintos rangos de valores determinados mediante el uso de operadores relacionales?

Edito con un ejemplo:

int expresion = 5;

switch (expresion) {
    case (expresion > 0):
        System.out.println("La expresión: " + expresion + "es mayor a cero");
        break; 
}

Es puramente teórica mi duda, para saber si puedo usar esta estructura en casos de comparación en vez de usar un if-else. En el ejemplo no se puede hacer así, pero es esa la idea.

One Answer

No necesitas usar alguna expresión, sino entender bien cómo funciona un switch y el break.

int x = 4;
switch(x) {
    case 0:
    case 1:
        System.out.println("Rango entre 0 y 1");
        break;
    case 2:
    case 3:
        System.out.println("Rango entre 2 y 3");
        break;
    case 4:
    case 5:
    case 6:
        System.out.println("Rango entre 4 y 6");
        break;
    default :
        System.out.println("otro rango");
}

Como puedes observar, en este caso el valor a imprimir va a ser "Rango entre 4 y 6", dado que va a ingresar por el case 4, pero al tener el break en el case 6 va a procesar desde case 4 hasta case 6 y terminará en esa instrucción, dado que existe un break, que indica al switch que debe terminar, es decir, salir de él.

Espero te sirva, saludos.

Correct answer by DavElsanto on December 29, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP