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

[Dúvida] Duvidas sobre While, aula 2

Olá, tudo bem?

Gostaria de tirar umas dúvidas, eu estava fazendo os exercicios utilizando While, porem tive bastante dificuldade na resolução deles, acabei tendo de utilizar das respostas para me guiar quase que 100%. Não consegui entender bem este conceito

Abaixo o exercicio era este, porem, não consegui entender na pratica como o contador funciona, e porque colocamos no console.log? A contagem vai aparecer na pagina principal? Ou este e um codigo somente para sistema? Durante a aula eu acreditei ter entendido, mas na pratica não consegui achar a funcionalidade para tal.

//Crie um programa de contagem progressiva. Peça um número ao usuário e conte até 0 este número, usando um loop while no console do navegador.

let numeroMaximo = prompt('digite um numero para contagem progressiva');
let contador = 0

while(contador <= numeroMaximo); {
    console.log(contador);
    contador++
}

a parte do contador++ e -- eu entendi, que a partir dali ele adiciona 1 a mais no processo, que o While vai ficar repetindo o codigo ate a afirmação ser verdadeira. Porem não entendi o processo em looping quando a contagem e constante, ele fica alertando todas as mudanças?

Não sei se consegui me fazer entender nas minhas dúvidas, peço desculpas por não saber bem ao certo como formular as perguntas, essa parte realmente me pegou de surpresa.

4 respostas
solução!

Olá Vinicius!

O loop while continuará executando o bloco de código dentro dele enquanto a condição contador <= numeroMaximo for verdadeira. A cada iteração, o valor de contador é impresso no console e, em seguida, adiciona + 1 (contador++). Isso se repete até que a condição seja falsa (quando contador ultrapassa numeroMaximo).

Vou te mostrar o passo a passo no código de como um compilador leria seu código

Na primeira iteração:

let numeroMaximo = prompt('digite um numero para contagem progressiva'); 
//Opa, aqui é pedido um número pro usuário, vamos supor que ele insira o número "2"
// A partir daqui o numeroMaximo tem o "2" armazenado nele, ou seja numeroMaximo = 2

let contador = 0
//Aqui o contador é definido como 0, então ele começará do 0!

while(contador <= numeroMaximo) { //Lendo essa parte de forma literal seria: "Enquanto o número 0 for menor ou igual a 2 eu vou executar o bloco!"
    console.log(contador); //Como nosso número começou por 0, aqui ele mostrará 0.
    contador++; 

//O símbolo "++" significa incremento, seria a mesma coisa que "contador + 1" ou seja, qual o número atual do contador? O número 0. Então seria 0 + 1 que é igual a 1.
}

Segunda iteração:

//Nosso número contador não é mais "0", mas sim "1" e mais uma vez ele verifica se 1 é menor que 2, isso é verdade? Sim! Então irei continuar.
while(contador <= numeroMaximo) { 
    console.log(contador); //Agora nosso número "1" armazenado em contador é mostrado no prompt do usuário.
    contador++;  //E aqui ele é somado com + "1", então 1+1 = 2, meu contador agora é "2".
}

Terceira iteração:

//Lembra que nosso contador foi incrementando e virou "2"? Então, agora ele vai verificar de novo se é menor ou igual a 2. E isso é verdade, "2" é igual a "2".
while(contador <= numeroMaximo) { 
    console.log(contador); //Agora nosso número "2" armazenado em contador é mostrado no prompt do usuário.
    contador++;  //E aqui ele é somado com + "1", então 2+1 = 3, meu contador agora é "3".
}

Quarta iteração:

// Agora vimos que nosso contador virou "3", vamos verificar de novo, "3" é menor ou igual a "2"? Não, ele é maior que "2", então não executarei.
while(contador <= numeroMaximo) { 
    console.log(contador);
    contador++;  
}

Espero que tenha sido esclarecedor, qualquer coisa pode chamar.

E sim, o número que mostra ali no console.log é apenas pra você, no seu terminal.

Caramba, como foi descrito pelos cientistas, da pra escrever um WOW do lado dessa explicação! Obrigado pela ajuda meu amigo, foi bem esclarecedor deste modo, ficou bem claro os processos, eu realmente não conseguia entender o como o contador++ fazia sentido no código, mas ficou claríssimo que ele em si já é uma repetição dos processos até acusar o false!

Novamente muito obrigado por ter usado seu tempo para me explicar o exercício, sou muito grato pela sua ajuda!

De nada Vinicius!