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

Habrá alguna forma de optimizarlo?

<script>
        var inicioDeSesionRegistrado = "alura";
        var contrasenhaRegistrada = "alura321";
        var cont=0;

        while(cont<3){
            var inicioDeSesionIngresado = prompt("Ingrese su usuario");
            var contrasenhaIngresada = prompt("Ingrese su contraseña");
            if(inicioDeSesionRegistrado != inicioDeSesionIngresado && contrasenhaRegistrada != contrasenhaIngresada){
                alert("inicio de sesión inválido. Favor intente de nuevo");                
            }else{
                alert("Bienvenido al sistema " + inicioDeSesionIngresado);
                break;
            } 
            cont++;           
        }         
    </script>

Funciona, pero creo que gasto muchas líneas

2 respuestas

Saludos, antes de todo reduce el numero de letras en las variables. La explicación del código va estar en los comentarios

<script>
  var cont = 3; // cuantas  veces puedes equivocar

  while (cont >= 0) { //La condición es que el contado no puede llegar a cero ya que va reduciendo
    let sesion = { // Utilice un objeto para guardar la contraseña y el usuario
      user: "alura",
      psw: "alura123",
    };

    var inicio = prompt("Ingrese su usuario"); //Las preguntas
    var password = prompt("Ingrese su contraseña");

    if (sesion.user != inicio && sesion.psw != password) // Método de validación llamando el obj (para llamar solo hay que nómbralo, punto y su variable adentro)
    {
      alert( //Use acento grave doble para escribrir la cantidad de veces dentro del codigo
        `inicio de sesión inválido. Favor intente de nuevo, te queda ${cont} intentos`
      );
    } else { 
      alert("Bienvenido al sistema " + inicio);
      break;
    }
    if (cont == 0) { //Mensaje que aparece si pierde las 3 oportunidades
      alert("CUENTA BLOQUEADA");
    }
    cont--; //El contador que reduz 
  }
</script>

Saludos.

solución!

Gracias :)