Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida sobre o break.

Olá!

Minha dúvida é sobre quando substituímos o break pelo número pensado (tentativas = 4). Quando o número pensado é um número fixo, como no exemplo, ele funciona perfeitamente interrompendo o loop. Mas quando eu altero o número pensado e coloco pra gerar um valor aleatório, e coloco (tentativas = nuemroPensado), não consegui entender o que ocorre. Sempre quando erro ele sempre me dá 3 tentativas, quando acerto ás vezes funciona como break, e algumas vezes quando acerto ele me da mais tentativas e não funciona como break. Gostaria de saber pq isso ocorre. O que me vem a mente é que ele está gerando um numero aleatório de tentativas também ou meu chrome está bugado kkkkk

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}

    var numeroPensado = Math.round(Math.random() * 10);
    
    var tentativas = 1
    

    while(tentativas <= 3) {

        var chute = parseInt(prompt("digite seu chute! "));

        if(chute == numeroPensado) {

            mostra("Você acertou, o numero pensado era " + numeroPensado);
            tentativas = numeroPensado

        } else { 

            mostra("Você errou !");
        }

        tentativas++;
    }

        


</script>
2 respostas

Troque o tentativas = numeroPensado por:

break
solução!

Oii, Lindolfo, como vai?

Mudar o valor da tentativa para a variável numeroPensado pode dar super errado, sim! Não é nada com seu navegador.

O que acontece é que, como o numeroPensado é um valor aleatório, esse valor pode ser menor que 3 (o que faz com que as chances sejam infinitas, já que a variável tentativa sempre será menor do que 3), ou maior ou igual, o que já impediria o loop de continuar acontecendo.

Nesse exemplo que o professor deu, o 4 está representando um valor maior do que as quantidades de tentativa. Foi apenas uma coincidência que o numeroPensado era o mesmo no momento! No caso, para utilizar outra variável no lugar do break, você poderia definir um número máximo de tentativas. Algo assim:

var tentativas = 1
var maxTentativas = 4  

    while(tentativas <= maxTentativas) {

        var chute = parseInt(prompt("digite seu chute! "));

        if(chute == numeroPensado) {

            mostra("Você acertou, o numero pensado era " + numeroPensado);
            tentativas = maxTentativas

        }
        

Espero que tenha ficado mais claro.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!