3
respuestas

Solucionado pero....

Logre solucionar el loop infinito usando break. Pero me genero la duda si a fuerza esa seria la unica forma de parar un while. Me encantaria sacarme esa duda. Les comparto mi codigo:

<meta charset="utf-8">

<script>

    function saltarLinea() {
        document.write("<br><br>");
    }
    function impirmir(frase) {
        document.write(frase);
        saltarLinea();
    }


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

    var maximosIntentos = 3;
    var intentoActual = 1;

    while (intentoActual <= maximosIntentos){
        var inicioDeSesionIngresado = prompt("Ingrese su usuario");
        var contrasenhaIngresasa = prompt("Ingrese su contraseña");



    if (inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresasa) {
        alert("Bienvenido al sistema " + inicioDeSesionIngresado);
        impirmir("lo lograste")
        break;

    } else {
        if (intentoActual == 3) { 
            alert("Agotaste el numero permitido de intentos!");
            impirmir("fallaste")
        } else {
            alert("Inicio de sesion invalido. Fabor intentar de nuevo.")
        }
    }
    intentoActual ++;
    }

</script>
3 respuestas

como tienes una condicional "if" dentro de un repetidor "while", si o si tiene que tener la palabra reservada "break", o sino pon la variable intentoActual = maximosIntentos ; dentro del "if" de esta forma...

<meta charset="UTF-8">

<h2>PROGRAMA - LOGIN DE USUARIO</h2>
<br>
<script>

    function imprimir(mensaje){
        document.write(mensaje);
        saltarLinea();
    }
    var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";
    var intentos = 1;

    while(intentos < 4){

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

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

        intentos++;
    }

    imprimir("MENU PRINCIPAL DEL PROGRAMA");
</script>

Perfecto, muchas gracias por la aclaración.

Aquí dejo mi solucion! espero les sirva!

<meta charset="UTF-8" />
<script>
  var userLoad = "alura";
  var passLoad = "alura321";

  var counter = 1;

  while (counter <= 3) {
    var user = prompt("Ingrese su usuario");
    var pass = prompt("Ingrese su contraseña");
    if (userLoad == user && passLoad == pass) {
      alert("Bienvenido al sistema " + user);
      break;
    } else if (counter != 3) {
      alert("inicio de sesión inválido. Favor intente de nuevo");
    } else {
      alert("Comuniquese con el administrador del sistema!");
    }
    counter++;
  }
</script>