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

Duda en ejercicio Inicio de Sesion

Hola, no entiendo porqué en la solucion al ejercicio de inicio de sesion del curso de prog. inicial II, se reasigna el valor de la variable dentro del if

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

en vez de utilizar un break? Funciona, y entiendo que al ser 3 el valor reasignado terminará el ciclo while, pero no entiendo porque usarlo asi y no poner un break. Gracias

Paso mi codigo

let regedLogIn = "alura";
        let regedPass = "alura321";

        let maxAtempts = 3;
        let userAtempts = 1;

        let givenLogIn; 
        let givenPass;

        while (userAtempts <= maxAtempts) {

            givenLogIn = prompt("Ingrese su usuario");
            givenPass = prompt("Ingrese su contraseña");

            if (regedLogIn == givenLogIn && regedPass == givenPass) {

                alert(`Bienvenido al sistema ${givenLogIn}`);
                break; 

            } else {

                if (userAtempts == 3) {

                    alert("Agotaste el número permitido de intentos!");

                } else {

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

        userAtempts++;
        }
4 respuestas
solución!

Hola Nadia, lo correcto es el break. Forzar la salidad asignando un valor que termine el while definitivamente no es una buena practica en programacion. Si algun colega tiene que hacer una modificacion o mantenimiento tardara en comprender lo que se quizo hacer. Saludos

dentro del if no esta reasignado variables, fijate bien// if(inicioDeSesionRegistrado == inicioDeSesionIngresado)

en ese caso no esta no esta reasignado las variables, la esta igualando para comparar, osea, por ejemplo en la variables var inicioDeSesionRegistrado = "Hola"; y la variable var inicioDeSesionIngresado = "Hola"; tienen dos valores los cuales va a compara y si son iguales pasa, if("hola"=="Hola") --> esto se lee como, Hola es igual a hola

Hola Fabricio, quizas no me expliqué bien, yo me refería a que reasigna el valor de la variable intento actual al final del ciclo if en vez de utilizar un break; y no en la condición.

f(inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada){
            alert("Bienvenido al sistema" + inicioDeSesionIngresado);
           ** intentoActual = maximoIntentos;**

intentoActual = maximosIntentos;

Por eso yo en cambio utilicé un break; como dice Carlos.

if (regedLogIn == givenLogIn && regedPass == givenPass) {

                alert(`Bienvenido al sistema ${givenLogIn}`);
                break; 

Gracias a ambos! Saludos!

Bien ya observe bien lo que dices y tienes razón, en ese caso, el ya ingresar a la sesión ya no es necesario incrementar los intento y esta bien forzar el cierre con bucle con el break, el cremento de la variable tiene que hacerse en "else" en ese caso.