Foros del Web » Programando para Internet » Javascript »

Switch

Estas en el tema de Switch en el foro de Javascript en Foros del Web. JavaScript 1.5 Hola a todos ¿Es verdad que no se puede colocar un rango de valores para ser analizados en un case? Por ejemplo: switch(numero) ...
  #1 (permalink)  
Antiguo 13/09/2009, 20:27
 
Fecha de Ingreso: diciembre-2004
Mensajes: 48
Antigüedad: 20 años, 1 mes
Puntos: 0
Switch

JavaScript 1.5

Hola a todos

¿Es verdad que no se puede colocar un rango de valores para ser analizados en un case? Por ejemplo:

switch(numero)
{
case >=1 && <=10:
instrucciones;
...

Y si se puede, ¿cuál es el código?

Desde ya Muchísimas Gracias.

--
CG
  #2 (permalink)  
Antiguo 13/09/2009, 21:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 7 meses
Puntos: 1517
Respuesta: Switch

switch se usa para buscar unos valores en especifico. Para usar los operadores vas a tener que usar if, else if y else
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 13/09/2009, 22:51
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Switch

aunque no es un poco posible realmente no tiene mucho sentido hacerlo asi. explico usando tu ejemplo...
Código:
var numero = 5;
switch(numero){
case numero >= 0 && numero <= 10:
alert("0-10"); break;

case numero > 10:
alert("10 >"); break;

default:
alert("default case");
}
lo que realmente sucede en este codigo es que las expresiones de case se tienen que evaluar primero y luego el valor devuelto es comparado con la expresion de switch. o sea, segun este ejemplo la expresion numero >= 0 && numero <= 10 evalua a true porque 5 esta en rango de modo que el codigo se simplifica a:
Código:
var numero = 5;
switch(numero){
case true: // numero >= 0 && numero <= 10
alert("0-10"); break;

case false: // numero > 10, 5 no es mayor que 10
alert("10 >"); break;

default:
alert("default case");
}
finalmente se procede a comparar la expresion de switch con los case, y como veras, numero no evalua igual a true ni false y por ende entra a default.

como dato adicional por si se te ocurre hacerlo asi, ¿que tal si en lugar de poner la expresion en un case lo ponemos en switch? o sea,
Código:
var numero = 5;
switch(numero >= 0 && numero <= 10){
...
default:
alert("default case");
}
en mi opinion, aunque es valido, tampoco tendria mucho sentido emplear switch/case porque es practicamente lo mismo que un if/else. la expresion de switch evalua a un boolean, lo cual, como maximo puedes tener dos case para los posibles valores que son: true y false.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 02:14.