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

Contador = contador + 1

Peguei esse código de um colega, que era o que eu tava tentando montar:

Entendi os outros modelos também. Minha dúvida é sobre o ponto abaixo (negrito)

while (contador <= 40) { if (contador != 33 && contador !=37){ mostra (contador); } ** contador = contador+1;**

1 - Por que vai começar a imprimir o número 30 se a primeira instrução é de contador + 1. Na minha cabeça, como o contador é 30, já deveria iniciar no 31 (30 + 1).

2 respostas

O segredo está na estrutura condicional "if", o contador dentro de "if" só será atualizado quando o contador chegar a 33 ou 37. Então você tem como primeira instrução "mostra (contador);", então o contador inciado em 30 vai ser mostrado, depois da instrução "mostra (contador);", é que ele vai ganhar +1. Segue um código parecido:

<meta charset="UTF-8">

<script>
    function pulaLinha() {
    document.write("<br>");
    document.write("<br>");
}

    function mostrarFrase(frase) {
    document.write(frase);
    pulaLinha(); 
}
var contador = 30; //O contador se inicia em 30
while (contador <= 40) {
    if (contador == 33 || contador == 37) {
        contador += 1; //Esse contador só é atualizado quando o contador chegar em 33 ou em 37 que é a condição para esta instrução ser realizada.
    }
    mostrarFrase(contador); //Contador vale 30
    contador += 1; //O contador só está sendo atualizado após a saída da mensagem na tela -> Agora vale 31.
}
</script>
solução!

Obrigado pela explicação, Gabriel. Acho que entendi agora:

mostrarFrase(contador); //Contador vale 30 contador += 1; //O contador só está sendo atualizado após a saída da mensagem na tela -> Agora vale 31.

Ou seja, ele vai mostrar obrigatóriamente a primeira instrução = mostra contador = 30

depios que imprimir, ele vai p baixo, somando + 1 = 31

e assim por diante.

Vou seguir com essa explicação. Valeu!