Olá
Quando coloco o mostra abaixo do contador a contagem no browser inicia no 4. Porque isso acontece?
var contador = 2;
while ( contador <= 100 ) {
contador = contador + 2;
mostra( contador );
}
Obrigado
Olá
Quando coloco o mostra abaixo do contador a contagem no browser inicia no 4. Porque isso acontece?
var contador = 2;
while ( contador <= 100 ) {
contador = contador + 2;
mostra( contador );
}
Obrigado
Porque antes de entrar na função mostra, o valor do contador que era 2, ganha mais 2, ficando com 4
Olá Giuseppe, tudo bem?
Caso queira exibir o 2 na sua contagem basta fazer como o Guilherme falou e inverter a ordem das instruções, ficando com:
var contador = 2;
while ( contador <= 100 ) {
mostra( contador );
contador = contador + 2;
}
Oi Giuseppe, sua dúvida foi solucionada?
olá a dúvida não foi totalmente elucidada. Eu já tinha feito o teste, invertendo a ordem das instruções. O que eu não saquei ainda é a lógica por trás.
se a função do mostra( contador ) é só fazer o output, pq ele interfere no resultado da soma do contador = contador + 2?
Veja bem. Vamos comparar o seu código como mandou e a versão como mandei:
O seu:
var contador = 2;
while ( contador <= 100 ) {
contador = contador + 2;
mostra( contador );
}
Nesse caso o contador inicialmente é definido como 2, certo?
Ao entrar no while
, qual a primeira instrução que ele realiza? contador = contador + 2;
. Repare que a função mostra()
só será chamada depois (com o valor do contador
já sendo 4). Então a função mostra()
não está alterando o valor, ele que foi alterado antes na linha anterior.
O meu:
var contador = 2;
while ( contador <= 100 ) {
mostra( contador );
contador = contador + 2;
}
Repare que agora, dentro do while
, antes de fazer qualquer alteração no valor da variável contador
, a função mostra()
é chamada, exibindo então o valor 2 antes que ele fosse alterado para 4.
Ficou melhor agora? :)
Fala Daniel!
Vc nem imagina o quanto ficou claro. Cristalino, cara. Puta explicação simples e boa. Eu sempre me pego meio confuso na ordem dessas instruções que vão dentro de while e if.
Mas com tua ajuda, algo que eu não sacava, agora é óbvio.
Oi Giuseppe, que bom que consegui ajudar. Fico feliz :)
Qualquer dúvida é só abrir outro tópico, ok?