Switch y case

Iniciado por perujo, 8 Agosto 2017, 12:28 PM

0 Miembros y 1 Visitante están viendo este tema.

perujo

Hola, tengo una duda al usar los case,al escribir esto:

switch (dia) {
   case 1: case 30:
.
.
.
}

Lo que hace es coger todos los numeros desde el 1 hasta el 30 o coge solo el caso 1 y 30?

Me podriais decir como se hace para que solo coja los casos que yo quiero? y también para que coja desde el caso 1 hasta el 30?

Gracias.

SubAtomicParticula

Saludos, la sentencia funciona por valores por separado pero podemos agrupar por valores al omitir break;

Caso básico sería:

switch(dia){
case 1:
Funcion1();
break;
case 2:
Funcion2();
break;
case 3:
Funcion3();
break;
------
case 30:
Funcionx();
break;
}

Caso de agrupar por valores sería:

switch(dia){
case 1:
case 2:
Funcion1y2();
break;
case 3:case 4:case 5:
Funcion345();
break;
------
case 30:
Funcionx();
break;
}

Para el caso de un rango seria incluir todos los valores:
switch(dia){
case 1:case 2:case 3:case 4:case 5: <----> case 15:
Funcion1_15();
break;
------
case 30:
Funcionx();
break;
}

También puedes hacer lo siguiente:

switch(dia){
case 30:
Funcion30();
break;
default:
Funcionx();
break;
}

Con esto conseguiríamos hacer un caso para el día 30 y el resto de los días se ejecutaría el caso por defecto (default:).

Espero haberte ayudado.

perujo

Vale muchas gracias,
entonces para hacer todos los valores del 1 al 30 por ejemplo debería escribir los 30 uno a uno verdad?

engel lex

Cita de: perujo en  8 Agosto 2017, 13:44 PM
Vale muchas gracias,
entonces para hacer todos los valores del 1 al 30 por ejemplo debería escribir los 30 uno a uno verdad?

si, tendrías que hacerlos todos, pero sería mala practica, para eso hay herramientas... sería como tener un martillo y usar una piedra para martillar

es decir

if(dia >= 1 && dia <= 30)

eso ocupa los casos entre 1 y 30
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.