Ayuda JAVA consola

Iniciado por elrecar, 10 Mayo 2009, 19:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

elrecar

Resulta que he implementado lo siguiente:

do  {
         Consola.println("Usuario:");
         usuario = in.readLine();
         Consola.println("Password:");
         contra = in.readLine();
         // verificamos que el usuario exista y contrasena correcta

         if (this.modelo.verificaUsuarioyPass(usuario, contra) == true) {
            Consola.println("Usuario logueado con exito.");
            //this.listarJugadoresJuego();
         } else {
            Consola
                  .println("Error: existen 2 posibles errores: ");
            Consola
                    .println("1) Verifique que el usuario y password sean correctos.");
            Consola
                      .println("2) Verifique que el saldo del jugador sea mayor a 10 apuestas base.");
         }

      } while (usuario != "x");



Estoy utilizando la clase consola.. tonces lo que hace eso es pedirme x consola el usuario y password.. luego verifica si con son correctos, si lo son muestra el mensaje correcto bla bla bla.. de lo contrario no bla bla bla ... tonces eso esta en bucle, la idea es q pida todo el tiempo usuario y contrasena hasta que se aprete la tecla x, mejor dicho hasta que la variable usuario sea = x ... pero no me funciona, o sea apreto la x y no sale ...  algo esta mal, alguien tiene alguna idea de como solucionarlo ? thankss

er_rafael_rafi

Los String en Java no se comparan como las demas variables (con el ==), sino que se comparan con un metodo de la clase String q se llama equals...en ti caso seria.
Código (java) [Seleccionar]
do  {
         Consola.println("Usuario:");
         usuario = in.readLine();
         Consola.println("Password:");
         contra = in.readLine();
         // verificamos que el usuario exista y contraseña correcta

         if (this.modelo.verificaUsuarioyPass(usuario, contra) == true) {
            Consola.println("Usuario logueado con exito.");
            //this.listarJugadoresJuego();
         } else {
            Consola
                  .println("Error: existen 2 posibles errores: ");
            Consola
                    .println("1) Verifique que el usuario y password sean correctos.");
            Consola
                      .println("2) Verifique que el saldo del jugador sea mayor a 10 apuestas base.");
         }

      } while (!usuario.equals( "x"));


Espero haberte ayudado...
Saludoss

elrecar

Excelente rafael! muchas gracias era eso ... pero ahora sigo con otro problemilla ... tengo que meter dos veces la x para salir  :-(

al final quedo asi:

do  {
         Consola.println("Usuario:");
         usuario = in.readLine();
         Consola.println("Password:");
         contra = in.readLine();
         // verificamos que el usuario exista y contrasena correcta
         if (this.modelo.verificaUsuarioyPass(usuario, contra) == true) {
            Consola.println("Usuario logueado con exito.");
            //this.listarJugadoresJuego();
         } else {
            Consola
                  .println("Error: existen 2 posibles errores: ");
            Consola
                    .println("1) Verifique que el usuario y password sean correctos.");
            Consola
                      .println("2) Verifique que el saldo del jugador sea mayor a 10 apuestas base.");
         }

      } while(!usuario.equals("x") || !contra.equals("x"));


y cuando sale tira los msg posibles de error:

"Error: existen 2 posibles errores:
1) Verifique que el usuario y password sean correctos.
2) Verifique que el saldo del jugador sea mayor a 10 apuestas base."

o sea que chequea el usuario y no deberia ... bueno si podes darme una mano o pista xD me voy a sentar a ver si lo soluciono ahora, graciass

er_rafael_rafi

No entiendo muy bien la pregunta...¿podrias especificar mas?...

Saludos

elrecar

Claro, que la idea de eso es q cuando la varibale usuario o contra sea igual a "x" salga del bucle, pues cuando llenas el usuario con x no sale del bucle y a continuacion te pide la contra como si nada y recien cuando pones x por segunda vez en contra sale del bucle ... y no es la idea XD entiendes ahora ?  xD

er_rafael_rafi

Aver si me explico...tu lo que quieres esq autimaticamente cuando introduzcas "x" en el usuario salga del bucle¿?...si es eso deberias utilizar otra cosa que no fuera el do while, o modificarlo, por que el do-while primero hace y luego pregunta, asi que si metes una x en el usuario va a pedirte la contraseña siempre, hasta que pregunte en el while...
Si no era a eso a lo que te referias, intenta explicarte mejor...jejeje

Saludos

elrecar

Ya esta pronto, lo solucione... era que estaba igualando con = en vez de ==
Gracias