Java - El ciclo while no funciona :

 
Vista:
sin imagen de perfil

El ciclo while no funciona :

Publicado por Luis (1 intervención) el 03/09/2022 02:12:33
Hola ,este es un intento de programa para crear una cuenta y el problema esta en la parte en donde las dos contraseñas tiene que compararse y si las dos son iguales sale cuenta creada ,hasta ahí todo esta bien ,pero en el caso de que las dos contraseñas no sean iguales lanzará un error y volverás a escribirla. Al principio en el primer intento escribes bien la contraseña sale cuenta creada pero si vuelves a ejecutar el programa y en el primer y segundo intento pones mal la contraseña para el tercer intento en donde la escribes bien, sigue saliendo error ,que la contraseña esta mal escrita .Y ese es el problema en sí.
package proyecto1;

import java.util.Scanner;

public class contraseña {

public static void main(String[] args) {

//ingreso de datos
System.out.println("Bienvenidos a dogdoggo");
Scanner crear = new Scanner(System.in);
//variables

System.out.println("1)crear una cuenta");
System.out.println("2)accede a tu cuenta");
System.out.print("Elige una opcion: ");
int inicio = crear.nextInt();

//PROCESAMIENTO
Scanner er = new Scanner(System.in);

if (inicio == 2) {
while (inicio != 1) {
System.out.print("ingresa tu correo: ");
String error = er.nextLine();
System.out.println("ERROR ,ESTE CORREO NO EXISTE");
System.out.println("1)crear una cuenta");
System.out.println("2)accede a tu cuenta");
System.out.print("Elige una opcion: ");
inicio = crear.nextInt();
}

}
System.out.println("");
Scanner in = new Scanner(System.in);

System.out.print("escribe tu nombre: ");
String nombre = in.nextLine();
System.out.print("escribe tu apellido: ");
String apellido = in.nextLine();
System.out.print("escribe tu nombre de usuario(ejemplo:[email protected]): ");
String usuario = in.nextLine();

System.out.print("escribe tu contraseña: ");
String contraseña = in.nextLine();
System.out.print("vuelva a escribir su contraseña: ");
String contraseña2 = in.nextLine();
int resultado = contraseña.compareTo(contraseña2);
if (resultado == 0) {
System.out.println("");
System.out.println("FELICIDADES!!!! CUENTA CREADA");
System.out.println("su correo es: " + usuario);
System.out.println("su contraseña es: " + contraseña);
} else {
while (contraseña != contraseña2) {
System.out.println("error");
System.out.print("vuelva a escribir su contraseña: ");
contraseña2 = in.nextLine();
}
}


}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

El ciclo while no funciona :

Publicado por Billy Joel (876 intervenciones) el 05/09/2022 06:10:30
Tu opción 2 no funciona porque tiene mala lógica.
Cuando compares String con otro String utiliza equals o equalsIgnoreCase
Tienes una línea así
1
while (contraseña != contraseña2) {
Cambiala por:
1
while (!contraseña.equals(contraseña2)) {

Si pones el enunciado te puedo ayudar mejor, pareciera que el programa está escrito para fallar.

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar