Autor Tema: [Javascript] Cómo capturar dato Switch statement dentro de function()?Gracias  (Leído 4057 veces)

Ener

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
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!!!!
« Última modificación: 11 de Febrero 2014, 03:26 por Ener »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Hola qué tal, lo que comentas de java y javascript tienen el parecido en el nombre y en que son lenguajes de programación, pero luego son conceptos bastante distintos uno y otro. Al menos javascript hay que verlo como un lenguaje que se ejecuta del lado del cliente, es decir, en tu propio navegador, y eso conlleva ciertas particularidades. Lo que comentas del resultado de una función javascript simple, normalmente ese resultado tendrás varias opciones:

a) Usarlo dentro de otra función javascript más amplia que llame a la más simple

b) Integrarlo en el código HTML de la propia página modificándolo con una instrucción javascript tipo innerhtml, de modo que cambiará la visualización de la propia página

c) Usar ese resultado para "pasarlo" a la aplicación web que esté funcionando bajo un lenguaje de programación del lado del servidor como php, asp, jsp, etc. que podrá usarlo para distintas cosas.

A lo mejor me estoy complicando y tu idea es simplemente no tener que poner el mensaje en todos los case. Para eso pienso que lo más simple es usar otra función que llame a la primera, o si no necesitas hacer nada más simplemente invocar la función dentro de la instrucción.

Por ejemplo: document.write(generar());

ó alert ("Se ha procedido a generar el valor. El valor generado es " + generar();

ó

var mensaje = "";
mensaje = generar();
alert ("Se ha procedido a generar el valor. El valor generado es " + mensaje;

Saludos  8)





 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".