Ver Mensaje Individual
  #11  
Viejo 27/05/13, 10:48:41
Array

[xs_avatar]
maid450 maid450 no está en línea
Miembro del foro
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Tu operador: Yoigo
 Cita: Originalmente Escrito por KchoPrro Ver Mensaje
Por lo que indicas, parece que no puede hacerse algo así, por el contrario Caravantes lo consigue.
Si que se puede hacer, como indica Caravantes, lo que quería decir mlesir es que no se puede con 1 solo IF, cada IF es para Si x -> haz esto, si no haz lo otro, pero anidandolos uns dentro de otros puedes hacer logicas muy complejas.

Por otro lado te voy a mostrar otra forma de hacer esto concreto que para mi gusto es más limpio y legible que empezar a meter IFs dentro uno de otros y sirve para este caso:

Código:
Si %VOICE ~ música:
    acciones musica
    parar
Fin Si
Si %VOICE ~ radio:
    acciones radio
    parar
Fin Si
Si %VOICE ~ otra:
    acciones otra
    parar
Fin Si
acciones en caso de cualquier otro comando
Basicamente sería al final de cada IF parar la tarea, de forma que una vez ha ejecutado las acciones de un comando ya para, mientras tanto sigue avanzando, y si llega al final del todo es que no ha entrado en ningún IF (un comando desconocido o no lo ha entendido bien o algo asi)

Lo malo que tiene este metodo es que si por ejemplo hay una serie de acciones comunes que quieres ejecutar al final de todas las acciones (por ejemplo reactivar las notificaciones) tendrías que duplicar esas cacciones dentro de cada IF antes de parar.

Alto! Hay una solucion para evitar esto!

Vamos a reescribir ligeramente lo de arriba para hacerlo un poco más flexible:
Código:
Si %VOICE ~ música:
    acciones musica
    ir a accion: etiqueta "Fin"
Fin Si
Si %VOICE ~ radio:
    acciones radio
    ir a accion: etiqueta "Fin"
Fin Si
Si %VOICE ~ otra:
    acciones otra
    ir a accion: etiqueta "Fin"
Fin Si
acciones en caso de cualquier otro comando
etiqueta "Fin"
acciones comunes al realizar siempre al final
Así podemos hacer uso de los saltos en vez de abortar la ejecución de la tarea.
En cuanto se cumple un IF (que %VOICE sea "música", "radio", etc...) hace lo que tenga que hacer y salta al final a las acciones comunes.
Si por el contrario no entra en ninguno, llega a las "acciones en caso de cualquier otro comando" (la unica forma de que llegue aquí es no haber entrado en ningún IF anterior y por tanto no haber saltado al final) y acto seguido realiza las acciones comunes.

Espero que haya quedado claras las explicaciones y que te ayuden a entender un poco mejor los condicionales, variables y demas cosas más "marcianas" para gente sin conocimientos de programación

 Cita: Originalmente Escrito por KchoPrro Ver Mensaje
En cualquier caso, aparco el tema hasta recuperar mi S3 (Diossss, mis datos, mis contactos, mis.... ) ya que no puedo probar nada, de momento.
Lo dicho, como es más teoría que otra cosa lo dejo escrito para que lo analizes y ya cuando recuperes tu telefono (menuda putada... lo siento, tío) y puedas lo pruebes y trastees para aplicarlo a tus necesidades.
Responder Con Cita
Gracias de parte de: