SA-MP Forums Archive
[Off] Problemas con la funciуn do-while with Switch - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Off] Problemas con la funciуn do-while with Switch (/showthread.php?tid=533540)



Problemas con la funciуn do-while with Switch - Lunnatiicz - 25.08.2014

Buenas a todos, tengo una duda con el siguiente cуdigo.
pawn Код:
System.out.println("Escribe 1 si quieres entrar al menu, de lo contrario escribe 2");
do {
switch (Eleccion) {
default : System.out.println("Opciуn incorrecta"); //Es en Java
            break;
case 1: System.out.println("Menъ....:");
           
          switch (Opcion) {
          case 1: Operacion();
                    System.out.println("їDeseas salir?");
                    Salir = Opc.nextInt(); //entrada de texto
                    break;
          case 2: Operacion();
                     System.out.println("їDeseas salir?");
                    Salir = Opc.nextInt(); //entrada de texto, si escribe un nъmero diferente a 2, termina.
                     break;
          }
          break;
case 2: System.out.println("Has decidido salir");
          Salir = 2;
          break;
}
} while (Salir == 2);
}
De esa manera tengo mi cуdigo ordenado, el problema es que al hacer lo siguiente pasa un error.

Elijo la opciуn 1 en "Eleccion" y me manda al Menъ, despuйs del Menu eligo el case 1 y me manda a la primera operacion, al terminar la operacion pregunto si quiere continuar de regreso AL MENU, si es correcto deberia comenzar de nuevo desde el switch ELECCION, pero me manda de nuevo al SWITCH OPCION y automбticamente escoge el CASE 1, їpor quй?

Imprime esto:

Код:
 Escribe 1 si quieres entrar al menu, de lo contrario escribe 2: 1
Menъ... (Si selecciono 1 me manda al case 1)
Operacion();......
Deseas salir? 1 (NO)
Menъ (Sin seleccionar opcion me manda al case 1)
Operacion();....



Respuesta: Problemas con la funciуn do-while with Switch - [H]ouse - 25.08.2014

Es de suponerse que 'Eleccion' sea establecida cada vez que inicie el ciclo, y no fuera del mismo.
pawn Код:
do {
    System.out.println("Escribe 1 si quieres entrar al menu, de lo contrario escribe 2");
    Eleccion = Opc.nextInt();
    switch (Eleccion) {
    default:
        System.out.println("Opciуn incorrecta");
        break;
    case 1:
        do{ //Para que tu menu sea repetitivo.
            System.out.println("Menъ....:");
            Opcion = Opc.nextInt();
            switch (Opcion) {
            case 1:
                Operacion();
                break;
            case 2:
                Operacion();
                break;
            }
            System.out.println("їDeseas salir de este menu (3)?");
            Opcion = Opc.nextInt();
        }while(Opcion != 3);
        break;
    case 2:
        System.out.println("Has decidido salir");
        Eleccion = 2;
        break;
    }
} while (Eleccion != 2);
Supongo que algo asн es lo que quieres hacer, aunque yo veo innecesario el primer bucle respecto a 'Eleccion'.. es de suponerse que para algo lo usaras.


Respuesta: Problemas con la funciуn do-while with Switch - Lunnatiicz - 25.08.2014

El error que me corregiste si era, el de poner la lectura de datos (eleccion y opcion) fuera del bucle, los adentre y comenzo a funcionar, muchas gracias.