Foros del Web » Programación para mayores de 30 ;) » .NET »

instruccion switch

Estas en el tema de instruccion switch en el foro de .NET en Foros del Web. Buenas, alguien sabe si es posible hacer en C# un switch con "rangos"?¿, es decir hacer: switch(opcion) { case 1-260: lo q sea break; case ...
  #1 (permalink)  
Antiguo 16/01/2006, 02:34
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
instruccion switch

Buenas,

alguien sabe si es posible hacer en C# un switch con "rangos"?¿, es decir
hacer:

switch(opcion)
{
case 1-260:
lo q sea
break;

case 261-520:
lo q sea
break;
}

Pq no me da error cuando ejecuto pero no me entra en los "case"

GRACIAS
  #2 (permalink)  
Antiguo 16/01/2006, 13:49
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
No se puede.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 17/01/2006, 10:14
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Digamos que para VB, el equivalente del Switch seria el Select Case.

Bien, esta es la referencia del Select Case, que sí permite rangos, por lo que he podido leer: http://msdn.microsoft.com/library/de...SelectCase.asp

Por lo que dice xknown no se puede. Has intentado probar algo así? Tampoco deja?

switch(opcion)
{
case >1 AND <260:
lo q sea
break;

case >261 AND <520:
lo q sea
break;
}

A ver si lo consigues. Me cuesta de creer que no haya algún camino para hacer eso.

Saludos.
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 17/01/2006, 17:10
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Como no es algo que se pueda hacer como en vb.net en esos casos debes usar el if como tal.. ejemplo:

Cita:
if ( (1 <= opcion) && (opcion <= 260) ) {
// haces algo....
} else if ( (261 <= opcion) && (opcion <= 520) ) {
// otra cosa
}
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 19/01/2006, 11:34
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias,
Pero preferia el switch, asi q con resignacion me voy al if....

Saludos
  #6 (permalink)  
Antiguo 19/01/2006, 20:08
Avatar de mateamargo  
Fecha de Ingreso: enero-2006
Mensajes: 13
Antigüedad: 18 años, 3 meses
Puntos: 0
El problema es que el Switch fue hecho para evaluar valores constantes, y un rango no lo es.

Algo similar sería esto:

Código:
Switch(valor)
{
case 1: case 2: case3:
MessageBox.Show("Entre 1 y 3");
break;
case 4: case 5: case 6:
MessageBox.Show("Entre 4 y 6");
break;
}
Pero si son muchos números, como en el ejemplo que pusiste, ahí deberías usar if con else if.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:12.