Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

Break

hola prof mi duda es la siguiente el break puede corta la interacción en el primer acierto en el video no me quedo claro porque seguía con las otras iteraciones 2,3,4 u elementos. entonces por ejemplo si acierto en el primer elemento con el break rompería el for?

3 respuestas

Los "break" salen de cualquier ciclo while o for. Pero solo de uno, no de todos los anidados que tengan.

while(true){
    break; // sale del cilco.
}
while(true){
    while(true){
        break; // sale del segundo ciclo pero sigue en el primero.
    }
    //seguiria aca despues de salir.
}

Si, evidentemente rompería el ciclo for peeero solo si pasa por if con un valor true Usando Loop para carga de datos(minuto 7:29)Y si a ti también se te ocurrió poner un break, el resultado seria el mismo de mostrar 4 veces el "Usted erró" como en la parte del minuto 3:45 (que es en donde también me confundí) y por mas que le haya puesto un break al if. Solo entraría a ejecutar ese break cuando al if le entre una afirmación y en todos los otros casos, terminara completando el ciclo for las n* veces entrando *n veces por el else Usando Loop para carga de datos(minuto 3:45)

Ahora, otra forma de hacerlo mas eficiente seria salir de la función con el valor return en este caso le decimos a function verificar () que su valor es *alert("usted acertó") *

<body>
    <input type="num">
    <button>Aceptar</button>

    <script>

        var secretos =[3,5,7,9];

        var input = document.querySelector("input");
        var button = document.querySelector("button");


        function verificar() {

            for (let posicion = 0; posicion < 4; posicion++) {

                if (parseInt(input.value) == secretos[posicion]) {                    
                    return (alert("Usted acertó")); //Aqui romperia la funcion devolviendo el valor de alert
                }
            }
            input.value="";
            input.focus();
            alert("Usted erró");
        }

        button.onclick = verificar;
        input.focus();
    </script>
</body>

La respuesta es si. si adivinas al primer intento se corta el ciclo. saludos