Foros del Web » Programando para Internet » Javascript »

mirad que me responden SWITCH case XD XD

Estas en el tema de mirad que me responden SWITCH case XD XD en el foro de Javascript en Foros del Web. en un curso de javascript me responden esto los tutores XD...... es con respecto a un ejercicio Cita: 1. Escribir una función que reciba un ...
  #1 (permalink)  
Antiguo 09/04/2008, 14:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 17 años, 1 mes
Puntos: 0
mirad que me responden SWITCH case XD XD

en un curso de javascript me responden esto los tutores XD......

es con respecto a un ejercicio
Cita:
1. Escribir una función que reciba un parámetro que será la edad. En función de la
edad mostraremos un mensaje mediante la ventana ‘alert’. Las condiciones son las
siguientes:

- Si la edad que nos introducen es menor que 18 mostrar el mensaje “Pase
juvenil”
- Si la edad está entre 18 y 64 el mensaje será “Pase adulto”
- Y por último si es mayor que 65 el mensaje será “Pase jubilado”

-----Hacer la misma función utilizando la instrucción IF.

-----Hacer la función utilizando una estructura SWITCH.
con if es muy facil

pero con switch case yo lo he hecho asi

Código PHP:
/* En los cases jamas se pueden utilizar expresiones de este tipo "(num>=18)&&(num<=64) o (num>65)" ya que no se evalúan.  La pregunta del ejercicio 1 esta mal                 formulada ya que sino se tendría que hacer para cada edad un case y saldrían muchísimos cases por eso he optado por el menú de opciones.*/
    
function age(num){
        switch(
num){
        case 
1:
        
alert("Pase juvenil");
        break;
        case 
2:
        
alert("Pase adulto");
        break;
        case 
3:
        
alert("Pase jubilado");
        break;
        default:
        
alert("Opción incorrecta");
        break;
        }
    }
    var 
option_age=prompt("Opciones\n1-Menor de 18 años\n2-Edad entre 18 y 64 años\n3-Mayor de 65 años\nElija una opcion:","");
    
age(parseInt(option_age));//promocion a entero del valor recogido en option_age que se pasa a la función ya que sino mostraria todo el rato opción incorrecta 
despues me han respondido lo siguienteXD (y aqui biene lo bueno)

Cita:
el ejercicio 3 se puede usar de la siguiente manera, te pongo un ejemplo.

Select Case NotaFinal

Case NotaFinal < 5

Suspendido

Case 5 to 6.99

Aprobado

Case 7 to 8.99

Notable

Case Else

Sobresaliente

End Select
y yo les he respondido estoXD

Cita:
La estructura que me habeis mandado es mas propia de ASP y no de javascript .
la estructura de ASP (select case) si que permite esa posibilidad pero con la estrutura (switch case) de javascript NOOOOOOOOOOOOO
ya que la expresion de switch(expresion) es comparada con los valores de los case's y es la unica comparacion que se hace.
despues de un case en javascript no se admite ninguna expresion de evaluacion posterior.
podeis probarlo de miles maneras de intentarlo y no podreis. ..lo que permita otra estructura similar como la de ASP u otro lenguaje ya es otra historia.
que opinais por que yo no he visto ninguna manera de poder hacer tal cosa:

Código PHP:
switch(num){
case (
num<18):
alert("Pase juvenil");
break;

  #2 (permalink)  
Antiguo 09/04/2008, 15:11
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: mirad que me responden SWITCH case XD XD

Hola ARAPSPGON:

Bueno, como bien dices en switch es muy rebuscado. Se me ha ocurrido esta forma, por ejemplo:

Código PHP:
var num 16;

function 
secuencia(x,y) {
    for(var 
dev = new Array(), i=xi<yi++) dev[i] = true;
    return 
dev;
}

switch(
true){
    case (
num in secuencia(0,18)):
        
alert("Pase juvenil");
    break;
    case (
num in secuencia(18,64)):
        
alert("Pase adulto");
    break;
    default:
        
alert("Pase jubilado");
    break;


En javascript 1.7 sería más sencillo...


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 09/04/2008, 17:55
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: mirad que me responden SWITCH case XD XD

gracias por tu ingeniosa manera

he encontrado otra mas sencilla que la he deducido de la tuya
gracias a que me he fijado en switch(true)

Código PHP:
function age(num){
    switch(
true){
     case (
num<18):
     
alert("Pase juvenil");
     break;
     case ((
num>=18)&&(num<=64)):
     
alert("Pase adulto");
     break;
     default:
     
alert("Pase jubilado");
     break;
    }
   }
var 
option_age=prompt("Introduzca su edad:","");
age(parseInt(option_age)); 
  #4 (permalink)  
Antiguo 10/04/2008, 10:03
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: mirad que me responden SWITCH case XD XD

Sí, esa es la siguiente manera que iba a postear, pero no me quedaba tiempo :

En los manuales casi nunca ponen ejemplos así, siempre nos vienen con el típico ejemplo de switch(edad), pero hay que entender que se pueden poner todo tipo de resultados y expresiones donde casi siempre ponemos variables:

Código:
switch( X ) {
  case A:
  break;
  case B:
  break;
  case C:
  break;
}
Y X, A, B y C en realidad pueden ser cualquier cosa. Y cuando X sea igual que A, B o C, entonces entrará en dicho fragmento de código. A veces nos olvidamos de esas abstracciones.



Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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

SíEste tema le ha gustado a 4 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:40.