Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Mi código al dar información diferente no deja de solicitar intentos

Mi código al fallar el inicio de sesión no deja de permitir más intentos de forma infinita quisiera saber cuál es el problema Otro asunto es que a veces pide el usuario y la contraseña dos veces cuando éstos ya se ingresaron correctamente. También quiero saber si estuvo bien usar un break ahí, pues al dar el usuario y contraseñas correctos daba en efecto el mensaje de de bienvenido pero luego igual no paraba de permitir intentos de inicio de sesión

<meta charset="UTF-8">
<script>

    var inicioDeSesionRegistrado = "chayote";
    var contrasenhaRegistrada = "techoya";




    var inicioDeSesionIngresado = prompt("Ingrese su usuario");
    var contrasenhaIngresada = prompt("Ingrese su contraseña");
    var intentoActual = 1 
    var maximoIntentos = 3


    while(intentoActual <= maximoIntentos ) {

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

        if( inicioDeSesionIngresado == inicioDeSesionRegistrado && contrasenhaIngresada == contrasenhaRegistrada ) {
        alert("Bienvenido al sistema " + inicioDeSesionIngresado);
        break;

    } else {
        alert("inicio de sesión inválido. Por favor intente de nuevo");
        if(intentoActual > maximoIntentos) {
            alert("Agotaste el número de intentos")

        }
    }

    intentoActual = intentoActual++

    }
3 respuestas
solución!

Hola Alvaro, el programa pide al principio dos veces el usuario y la contrasenha porque declaraste dos veces las variables inicioDeSesionIngresado y contrasenhaIngresada, puedes solucionarlo quitando las que estan fuera del bucle. Por otra parte, la manera correcta de aumentar la variable seria intentoActual++ por eso el bucle nunca finaliza. Si haces esas modificaciones tu codigo deberia funcionar.El break esta bien que lo hayas utilizado en el primer if, si valor de la condicion es True va a mandar el alert y luego con el break sale del bucle. Por ultimo, el mensaje de agotar intentos nunca se mostrara porque la variable intento nunca llegara a ser mayor, la condicion correcta seria if (intentoActual == maximoIntentos), te aliento a que intentes hacer que el codigo no muestre el inicio de sesión inválido. Por favor intente de nuevo cuando sea el tercer intento y solo muestre Agotaste el número de intentos.

Un saludo Alvaro!

Tu segundo if no puede tener como condición "intentoActual > maximoIntentos" ya que debido a tu condición principal, este nunca va a sobrepasar dicho valor. También tenes que eliminar las preguntas "de usuario y contraseña" fuera del while porque si no te las repregunta al entrar

Tu codigo :] :


    while(intentoActual <= maximoIntentos ) {

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

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

        if(intentoActual == maximoIntentos) {
            alert("Agotaste el número de intentos")

        }
    }
    intentoActual++
    }

No olvides de marcarme como solución si mi respuesta te fue de utilidad, saludos !! :]

Les agradezco mucho, me han ayudado mucho tenía horas en esto, ahora bien estoy tratando de averiguar como hacer para que no muestre "inicio de sesión inválido. Por favor intente de nuevo" cuando ya sea el tercer intento y solo muestre "Agotaste el número de intentos"