7
respuestas

Solución usando for, break, if, else.

Veo que muchos usaron While, pero a mí se me facilitó más usar el ciclo for. comparto mi código por si les es de utilidad.

<meta charset="utf-8">


<h1>Simulando una pantalla de inicio de sesión</h1>

<script>

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

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

}

//Variables globales
var inicioDeSesionRegistrado = "alura";
var contrasenhaRegistrada = "alura321";
///////////////////////////////////////



for (var numIntentos = 1; numIntentos <= 3; numIntentos++) 
{
    var inicioDeSesionIngresado = prompt("Ingrese su Usuario");
    var contrasenhaIngresada = prompt("Ingrese su contraseña");

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

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

    } 
    else
    {
        if (numIntentos == 3) 
        { 
                alert("Usted agotó sus oportunidades de ingresar. Contacte con su Administrador para desbloquear el sistema"); 
                break;
        }

        alert("inicio de sesión inválido. Favor de intentar de nuevo");

        if (numIntentos == 2) 
        {
                alert("Le queda un Intento para Ingresar al sistema. Asegurese de introducir bien su usuario y contraseña.");

        }


    }

}

imprimir("FIN");


</script>
7 respuestas

en ese momento tambien me parecio mas comodo el For , pero despues de avanzar un par de videos mas , se me hiso mas comodo usar el while , ademas de que resumi mucho mejor la tarea en mucho menos palabras! Saludos genio!

Yo tambien use el For, por lo general prefiero usarlo.

Utilizar for en conveniente en general cuando estamos seguros del número de repeticiones a realizar, pero como en este caso no sabemos lo mejor es utilizar while, aunque no parezca muy importante, cuando nosotros preguntamos una condición, estos tiempos son mayores en una función definida por nosotros que una propia del lenguaje (esto porque esta mas optimizado). En algo tan pequeño quizá es irrelevante, pero si es muchas veces, cualquier milisegundo ahorrado suma.

Buenas, disculpa Jose , vos decis "Utilizar for en conveniente en general cuando estamos seguros del número de repeticiones a realizar, pero como en este caso no sabemos lo mejor es utilizar while " . Me parece que sabemos las repeticiones, q serian 3 intentos como maximo. Igualmente aconsejas while? Gracias!!!!

Que tal Christian, son tres intentos como máximo, pero si aciertas en la primera no necesitas seguir.

Francisco López Vietri Alfonso, tomo en cuenta tus palabras sobre while ahora que avanzo con los videos. Saludos.

José Lizandro Araujo Barrera, gracias por el tip, es bueno saber lo de los tiempos. Tomo nota de ello, saludos.