2
respostas

[Jogo Adivinha com Array] Por que usar um true/false ao invés de break ?

Meu código :

<meta charset = "UTF-8">

    <input/> 
    <button>Já Sei!</button>

    <script>

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

        var number = [3,6,9];

        function chute(){

            for(var position = 0;number.length; position++){

            if (inputNumber.value == number[position]){

            alert("Você ACERTOU!");
            break;


            } else {

            alert("Que pena, você errou!");         //Um break; aqui também impediu a repetição do alerta.
                    break;

                  }

            }
                inputNumber.value = "";
                inputNumber.focus();
            };


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



    </script>

Código do professor:

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</button>

<script>

    var segredos = [5,7,10,2,3];

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

    function verifica() {

    var achou = false;                     // Por que criar uma variável...

    for(var posicao = 0; posicao < segredos.length; posicao++) {

        if(input.value == segredos[posicao]) {

            alert("Você ACERTOU!");
            achou = true;
            break;                         //...que teve o mesmo resultado do break?
        }
    }

    if(achou == false) {
        alert("Você ERROU!");
    }

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

    }

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

    button.onclick = verifica;

</script>
2 respostas

Para que quando a verificação do loop receber a resposta certa do usuário, então o sistema "quebra" que em ingles é o "break" seja acionado e nao da um alert com a mensagem de erro. Assim quando o usuario acertar o numero adivinhado, o sistema para, dando a entender que o programa foi finalizado com exito!