switch

22/04/2004 - 10:46 por Alberto | Informe spam
quiero comprobar si un valor se encuentra entre unos rangos prestablecidos
pero me encuentro que la instrucción switch no lo admite ya que después de
case tiene que ir un valor constante.

¿hay algun otro modo de hacer algo similar a esto?
switch (a)
case 50 to 60:

case 40 to 49
...

¿No os parece que C# es bastante peor en este sentido que Visual Basic? El
switch de vb era muy completo pero el de C# es limitadísimo.
Gracias.

Preguntas similare

Leer las respuestas

#1 Angel J. Hernández M.
22/04/2004 - 15:27 | Informe spam
No lamentablemente C# no tiene para evaluar rangos. Sin
embargo puedes hacer uso de goto <etiqueta> para simular
o hacer lo mismo.

Ejemplo:

Switch(a) {
case 1:
goto 2;
break;
case 2:
break;
}

Saludos

quiero comprobar si un valor se encuentra entre unos


rangos prestablecidos
pero me encuentro que la instrucción switch no lo admite


ya que después de
case tiene que ir un valor constante.

¿hay algun otro modo de hacer algo similar a esto?
switch (a)
case 50 to 60:

case 40 to 49
...

¿No os parece que C# es bastante peor en este sentido


que Visual Basic? El
switch de vb era muy completo pero el de C# es


limitadísimo.
Gracias.


.

Respuesta Responder a este mensaje
#2 Pablo Alvarez Doval
22/04/2004 - 15:55 | Informe spam
No lamentablemente C# no tiene para evaluar rangos. Sin
embargo puedes hacer uso de goto <etiqueta> para simular
o hacer lo mismo.



Uffff... si los switch ya estan bastante mal vistos en cuanto a
diseño (hay soluciones mucho mejores, como la expuesta en
el GoF de Patrones de Diseño).. tratar de 'arreglar' un swith
con un goto me parece de lo mas kafkiano que he visto en
mucho tiempo :)

Eso si, con todos mis respetos, ya que al menos has aportado
una solucion efectiva, Angel.. no te lo tomes como algo 'personal'
ni una critica destructiva.. solo que yo no recomendaria ni el
uso de switch (exceopto en contados casos) ni por supuesto el
del gotos... hay que tratar de realizar mejores diseños y menos
'hacks' creo yo..

Un saludo,
Pablo


Pablo Alvarez Doval
Estudiante de Ingenieria Informatica - Universidad de Oviedo (EUITIO)
" To Iterate is Human, to Recurse is Divine."
Respuesta Responder a este mensaje
#3 Angel J. Hernández M.
22/04/2004 - 17:53 | Informe spam
No lo tomo personal. Para nada. Es verdad que existen
otras maneras de hacerlo. Sin embargo el amigo pregunto
por Switch y le dije la manera como se consigue. En mi
código te aseguro que no vas a encontrar ni un goto... Yo
pienso que si hubieses leído e interpretado la pregunta
no hubieses contestado lo que hiciste ;-)

Have a nice day!!!

No lamentablemente C# no tiene para evaluar rangos. Sin
embargo puedes hacer uso de goto <etiqueta> para




simular
o hacer lo mismo.



Uffff... si los switch ya estan bastante mal vistos


en cuanto a
diseño (hay soluciones mucho mejores, como la expuesta en
el GoF de Patrones de Diseño).. tratar de 'arreglar' un


swith
con un goto me parece de lo mas kafkiano que he visto en
mucho tiempo :)

Eso si, con todos mis respetos, ya que al menos has


aportado
una solucion efectiva, Angel.. no te lo tomes como


algo 'personal'
ni una critica destructiva.. solo que yo no recomendaria


ni el
uso de switch (exceopto en contados casos) ni por


supuesto el
del gotos... hay que tratar de realizar mejores diseños


y menos
'hacks' creo yo..

Un saludo,
Pablo


Pablo Alvarez Doval
Estudiante de Ingenieria Informatica - Universidad de


Oviedo (EUITIO)
" To Iterate is Human, to Recurse is Divine."


.

Respuesta Responder a este mensaje
#4 Pablo Alvarez Doval
22/04/2004 - 18:08 | Informe spam
Hola de nuevo Angel,

No lo tomo personal. Para nada. Es verdad que existen
otras maneras de hacerlo. Sin embargo el amigo pregunto
por Switch y le dije la manera como se consigue. En mi
código te aseguro que no vas a encontrar ni un goto... Yo
pienso que si hubieses leído e interpretado la pregunta
no hubieses contestado lo que hiciste ;-)



De nuevo me discuplo si te ofendio mi post: De hecho,
ya te dije que al menos tu diste una solucion, y perfectamente
util e ingeniosa para el problema que se pregunto, que fue
mas de lo que yo hice, asi que excelente.

Si conteste lo que hice fue por dos razones: primera, no
lo pude evitar XD lo siento, tengo el dia particularmente
'picajoso' y me llego al alma el post.. pero digo de nuevo que
de un modo totalmente sano, y sin animo de ofender.

La otra razon, es que quizas no esta mal recordar de vez
en cuando algunas cosas que aunque para algunos de nosotros
estan ya muy sabidas, otra gente puede no conocer tanto:

- Switches: Malos
- Gotos: Infames y tercermundistas xD

Por lo demas, reitero mis disculpas y repito: tu solucion me
parece hasta ingeniosa, pero no recomendable para 'resolver'
un problema, sino como hack entretenido o una locura guapa
para enseñar a los colegas ;)

Un saludo,
Pablo


Pablo Alvarez Doval
Estudiante de Ingenieria Informatica - Universidad de Oviedo (EUITIO)
" To Iterate is Human, to Recurse is Divine."
Respuesta Responder a este mensaje
#5 Alberto
22/04/2004 - 18:28 | Informe spam
¿Porqué es malo un switch?

"Pablo Alvarez Doval" escribió en el mensaje
news:
Hola de nuevo Angel,

> No lo tomo personal. Para nada. Es verdad que existen
> otras maneras de hacerlo. Sin embargo el amigo pregunto
> por Switch y le dije la manera como se consigue. En mi
> código te aseguro que no vas a encontrar ni un goto... Yo
> pienso que si hubieses leído e interpretado la pregunta
> no hubieses contestado lo que hiciste ;-)

De nuevo me discuplo si te ofendio mi post: De hecho,
ya te dije que al menos tu diste una solucion, y perfectamente
util e ingeniosa para el problema que se pregunto, que fue
mas de lo que yo hice, asi que excelente.

Si conteste lo que hice fue por dos razones: primera, no
lo pude evitar XD lo siento, tengo el dia particularmente
'picajoso' y me llego al alma el post.. pero digo de nuevo que
de un modo totalmente sano, y sin animo de ofender.

La otra razon, es que quizas no esta mal recordar de vez
en cuando algunas cosas que aunque para algunos de nosotros
estan ya muy sabidas, otra gente puede no conocer tanto:

- Switches: Malos
- Gotos: Infames y tercermundistas xD

Por lo demas, reitero mis disculpas y repito: tu solucion me
parece hasta ingeniosa, pero no recomendable para 'resolver'
un problema, sino como hack entretenido o una locura guapa
para enseñar a los colegas ;)

Un saludo,
Pablo


Pablo Alvarez Doval
Estudiante de Ingenieria Informatica - Universidad de Oviedo (EUITIO)
" To Iterate is Human, to Recurse is Divine."


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida