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

[Duda] El programa se me cuelga por alguna razón.

Buen día, estaba realizando el programa que el instructor realizó, pero al ejecutarlo, el programa se me cuelga y no termina cargar. A continuación, voy a dejar mi código, lo he revisado incontables veces, pero no encuentro el error. Gracias por la atención.


<meta charset="UTF-8">

<input/>
<button>Verifique si el número es correcto</button>

<script>

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

    function randomico() {

        return Math.round(Math.random()*10);
    }

    function numerosAleatorios(parametros) {
        var secretos = [];
        var contador = 1;

        while (contador <= parametros) {
            var aleatorio = randomico();
            var encontrado = false;

            for (var elementos = 0; elementos < secretos.length; elementos++) {
                if (aleatorio == secretos[elementos]) {
                    encontrado = true
                    break;
                }

                if (encontrado == false) {
                    secretos.push(aleatorio);
                    contador++;
                }
            }
        }
        return secretos    
    }
    var secretos = numerosAleatorios(4);
    console.log(secretos)


    function verificar() {

        var encontrado = false;

        for(var posicion = 0; posicion < secretos.length; posicion++) {

            if (parseInt(input.value) == secretos[posicion]) {

                alert("Felicidades, acertó.");
                encontrado = true;
                break;

            }


        }

    if (encontrado == false) {    

        alert("Erró, intentelo de nuevo.");

        }    

            input.value = "";
            input.focus();




    }


    var button = document.querySelector("button");
    button.onclick = verificar;

</script>
3 respuestas

Error al en la posición de un If

Tu error está en que si tu programa detecta en algún momento un número repetido la variable encontrado se vuelve igual a true y con el uso de break se sale de ese ciclo for y sigue leyendo lo que debajo en el código pero como tu instrucción donde el contador si avanza (contador ++) sigue dentro de ese for y tu ya te saliste, nunca avanza y el ciclo nunca termina, es decir, tienens un loop infinito.

También noté que te falta usar punto y coma al final de varias instrucciones, recuerda que esto puede generarte problemas y por buena práctica no debemos olvidar colocar este símbolo ;

Que buena explicacion compañero

Excelente, me llegó a pasar algo similar. Gracias.