1
Aprender a programar desde cero / [Javascript] Cómo capturar dato Switch statement dentro de function()?Gracias
« en: 11 de Febrero 2014, 03:23 »
Buenas horas!!
Antes de nada, presentarme ante la comunidad.
Soy un newbie de estos lares, que he tocado algo de java en clase (algoritmos,principalmente, y luego un poco para saber lo más sencillo (sentencias de control)), aunque nos quedamos en lo más interesante, la herencia,y todo eso.
Nosotros haciamos solo las cosas en el "main", en vez de hacer public, y todo eso...
así que experiencia, me falta un rato xDDD
La cuestión es que desde hace varios días que estoy toqueteando por mi mismo,varias cosas ( interes personal,hehehehe) y ahora me he pasado al javascript.
Y no puedo hacer exactamente lo mismo que hacía en java!
No obtengo el resultado de la sentencia "switch"....
así pues vengo ya preguntando xD
Alguna forma de capturar el resultado de un case de un switch, que está dentro de una function, para seguir usandolo en esa function?
Por sí alguien pregunta por el código, que veo que suele ser común por estos lares, lo pondré al final del post xDDD
Si yo abro functión, y creo un switch....hay alguna forma de lloevarme el resultado de esos "case" fuera de la estructura de control, para imprimir por pantalla ese resultado de una tirada? la variable resultado de todos los cases, es texto distinto,pero la variable se llama igual.Quiero evitar poner en todos los cases el "document.write".En java, en esos casos, con un break, te llevabas esa variable fuera de la sentencia de control, e imprimias por pantalla ese resultado.Quiero hacer eso, pero no me sale...he probado con return,break,poniendo el document.write dentro de la propia secuencia de control al final de todo,etc...pero al final, lo que me interesa,es sacar fuera esa variable que NO es local,ya que será el resultado en todos los "cases" y sólo quiero capturar esa frase por case.
Utilizo input type=button onclick="generar()"
function generar()
{
tirada=Math.floor(Math.random()*10*1);
return switch (tirada){
case tirada>10:
premio="Mayor de 5";
return premio;
break;
case tirada<1:
premio=("Menor de 5");
return (premio);
break;
}
document.write(premio);
}
En éste caso solo hay dos case, porque es pruebas....cuando me salga bien con ésto, ya iré rellenando xD
Como véis, premio es la misma variable para las dos, pero con diferente resultado.Dependiendo del resultado, quiero que imprima 1 resultado u otro, pero no sé si hay alguna forma de hacerlo como en java standard, que ahí sí que me sale.No quiero poner un "document.write("Texto") por cada case...ya que en su momento habrán muchos, al no saber muy bien como va el tema de las funciones y las llamadas (no sé si se pueden llamar funciones dentro de funciones,y todo eso...).
También probé lo de llamar a la función despues de la funcion o algo así
generar()
document.write(premio);
y tampoco hubo suerte xDDD
Por el momento, no busco código, pero a lo mejor estoy intentando hacer algo que todo el mundo se ha topado con eso y no se puede hacer ( en todas las páginas por internet que he estado mirando, he visto que en todas ponian una respuesta por case, asi que...o bien son los mismos 3 o 4 ejemplos repetidos siempre, o bien es así xD ( o no he buscado o suficiente ( hasta la 3a pagina de google xD))
Un saludo, y gracias!!!!
Antes de nada, presentarme ante la comunidad.
Soy un newbie de estos lares, que he tocado algo de java en clase (algoritmos,principalmente, y luego un poco para saber lo más sencillo (sentencias de control)), aunque nos quedamos en lo más interesante, la herencia,y todo eso.
Nosotros haciamos solo las cosas en el "main", en vez de hacer public, y todo eso...
así que experiencia, me falta un rato xDDD
La cuestión es que desde hace varios días que estoy toqueteando por mi mismo,varias cosas ( interes personal,hehehehe) y ahora me he pasado al javascript.
Y no puedo hacer exactamente lo mismo que hacía en java!
No obtengo el resultado de la sentencia "switch"....
así pues vengo ya preguntando xD
Alguna forma de capturar el resultado de un case de un switch, que está dentro de una function, para seguir usandolo en esa function?
Por sí alguien pregunta por el código, que veo que suele ser común por estos lares, lo pondré al final del post xDDD
Si yo abro functión, y creo un switch....hay alguna forma de lloevarme el resultado de esos "case" fuera de la estructura de control, para imprimir por pantalla ese resultado de una tirada? la variable resultado de todos los cases, es texto distinto,pero la variable se llama igual.Quiero evitar poner en todos los cases el "document.write".En java, en esos casos, con un break, te llevabas esa variable fuera de la sentencia de control, e imprimias por pantalla ese resultado.Quiero hacer eso, pero no me sale...he probado con return,break,poniendo el document.write dentro de la propia secuencia de control al final de todo,etc...pero al final, lo que me interesa,es sacar fuera esa variable que NO es local,ya que será el resultado en todos los "cases" y sólo quiero capturar esa frase por case.
Utilizo input type=button onclick="generar()"
function generar()
{
tirada=Math.floor(Math.random()*10*1);
return switch (tirada){
case tirada>10:
premio="Mayor de 5";
return premio;
break;
case tirada<1:
premio=("Menor de 5");
return (premio);
break;
}
document.write(premio);
}
En éste caso solo hay dos case, porque es pruebas....cuando me salga bien con ésto, ya iré rellenando xD
Como véis, premio es la misma variable para las dos, pero con diferente resultado.Dependiendo del resultado, quiero que imprima 1 resultado u otro, pero no sé si hay alguna forma de hacerlo como en java standard, que ahí sí que me sale.No quiero poner un "document.write("Texto") por cada case...ya que en su momento habrán muchos, al no saber muy bien como va el tema de las funciones y las llamadas (no sé si se pueden llamar funciones dentro de funciones,y todo eso...).
También probé lo de llamar a la función despues de la funcion o algo así
generar()
document.write(premio);
y tampoco hubo suerte xDDD
Por el momento, no busco código, pero a lo mejor estoy intentando hacer algo que todo el mundo se ha topado con eso y no se puede hacer ( en todas las páginas por internet que he estado mirando, he visto que en todas ponian una respuesta por case, asi que...o bien son los mismos 3 o 4 ejemplos repetidos siempre, o bien es así xD ( o no he buscado o suficiente ( hasta la 3a pagina de google xD))
Un saludo, y gracias!!!!