Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Bug] Simulando una pantalla de inicio de sesión

Hola buen día alguien me ayuda ¿ con este código? el problema es que al darlme true o false me aparece el Bienvenido logueado correctamenteFallaste el de inicio de sesión.

   var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";
    var intentos = 0;

    var inicioDeSesionIngresado = prompt("Ingrese su usuario");
    var contrasenhaIngresada = prompt("Ingrese su contraseña");

   while(intentos <= 3){
    if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
        alert("Bienvenido al sistema " + inicioDeSesionIngresado);
        document.write("Bienvenido logueado correctamente");
        break;
    } else {
        alert("inicio de sesión inválido. Favor intente de nuevo");
        inicioDeSesionIngresado = prompt("Ingrese su usuario");
        contrasenhaIngresada = prompt("Ingrese su contraseña");
        intentos++;
    }

    }

        document.write("Fallaste el de inicio de sesión.");

</script>
2 respuestas
solución!

Hola, tienes algunos errores en la estructura de tu código. El principal es en tu última línea de código.

document.write("Fallaste el de inicio de sesión.");

No debería de ir ahí.

Lo idealdesde mi punto de vista, seria emplear una condición if al final donde evalúes si tu variable intento supero el número de intentos para ingresar sus datos o ingreso de manera correcta. Podría quedar así:

    if (intentos < 3) {
        document.write("Inicio de sesión correcto");
    } else {
        document.write("Fallo en el inicio de sesión");
    }

Sin embargo, note algunas líneas repetidas en tu código, así que opte por mostrarte un código un poco mas corto.

    var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";
    var intentos = 0;

    while(intentos < 3){
        var inicioDeSesionIngresado = prompt("Ingrese su usuario");
        var contrasenhaIngresada = prompt("Ingrese su contraseña");

        if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            break;
        } else {
            alert("inicio de sesión inválido. Favor intente de nuevo");
        }
        intentos++;
    }

    if (intentos < 3) {
        document.write("Inicio de sesión correcto");
    } else {
        document.write("Fallo en el inicio de sesión");
    }

Los cambios realizados es que pides dos veces tanto el usuario como la contraseña, por lo que colocando estas dos líneas de código al principio del ciclo while, mejora un poco. Otro aspecto es que dentro de la condición del ciclo while es que colocaste (intentos <= 3) lo cual aumenta en cuatro intentos para ingresar la contraseña y no en tres, si deseas asignar así tu condición dentro del bucle, deberás inicializar tu variable intento en 1. También, modifique el incremento de tu variable intentos para que se incremente directamente en el ciclo while.

Espero que te sirva. ¡Saludos!

sugiro establezcas las variables while, es decir contador de intentos <= numero máximo de intentos primero y luego usas los condicionamientos dentro de While que cumpla con los requisitos.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad