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)
3
respuestas

Problemas con mi código

Buenas tardes, tengo problemas con mi código de "Simulando una pantalla de inicio de sesión", lo realicé con While y me funciono perfectamente, pero ahora lo intento con for para practicar, pero no funciona correctamente cuando se escribe de manera incorrecta el usuario y la contraseña, si alguien me pudiese explicar cuál es el error se lo agradecería.

<meta charset="UTF-8">

<h2>Inicio de sesión</h2>

<script>

    function saltarlinea() {
        document.write("<br>");
        document.write("<hr>");
    }

    function imprimir(frase){
        document.write(frase);
        saltarlinea();

    }

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

    for (var intentos = 1; intentos <= 3; intentos ++) {

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

        if (inicioDeSesionRegistrado == inicioDeSesionIngresado) {
                if (contrasenhaRegistrada == contrasenhaIngresada) {

                    imprimir("Bienvenido al sistema " + inicioDeSesionIngresado);
                break;
            }
        } 

        else {
            alert("Inicio de sesión inválido. Favor intente de nuevo");
        }

        intentos ++;
    }

</script>
3 respuestas

Si no te funciona el Else es porque tiene que estar a continuacion del cierre:

    if (inicioDeSesionRegistrado == inicioDeSesionIngresado) {
        if (contrasenhaRegistrada == contrasenhaIngresada) {

            imprimir("Bienvenido al sistema " + inicioDeSesionIngresado);
            break;
        }
    } else {
        alert("Inicio de sesión inválido. Favor intente de nuevo");
    }

ademas solamente tenes 2 intentos porque estas creando tu variable "intentos" con un 1. cuando te logeas incorrectamente la variable incrementa a 2. intentas de vuelta y la variable incrementa a 3 y ahi termina el for

solución!

Luz Amanda estas incrementando de nuevo el valor de intentos al final del for: intentos++, y lo estas incrementando dentro del for, donde debe ser.

Pienso que debes borrar la linea de codigo que dice: intentos++;

El else {}, por mi parte debes reemplazarlo por el siguiente codigo:

    if (intentos  == 3){
        alert("Usuario o contraseña invalida, ha excedido la cantidad de intentos.");
    }

Muchísimas gracias, ya funcionó perfectamente.