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

For vs While

Olá galerinha! Tudo bem?

As duas palavras chaves For e While serve como estrutura de repetição, porém, creio que exista alguma sintaxe diferente para cada uma. Não sei muito qual a diferença e normalmente vejo em códigos ser mais utilizado o for do que o while. Portanto tentei aplicar no meu código o for, só que não retorna a resposta que eu queria.

Código da professora Vanessa:

 while (contador < listaDeTeclas.length){

     listaDeTeclas[contador].onclick = tocaSomPom;

     contador = contador + 1;

     console.log(contador);
}

Meu código com For:

   for (contador = 0, contador < listaDeTeclas.length, contador++) {

        listaDeTeclas[contador].onclick = tocaSomPom;

        console.log(contador);
  }

Para ambos declarei a variável let contador = 0; O que posso estar fazendo de errado para não trazer o resultado igual do código da professora?

Entendo que contador++ seja igual a contador = contador + 1;

Desde já agradeço a ajuda.

2 respostas
solução!

Olá Dante, tudo bem?

De forma bem resumida, o laço de repetição "for" significa literalmente "para", ou seja, para um dado X ele fará tal ação, então ele vai usar o dado fornecido para fazer uma função específica. No seu caso ele deve ter retornado só uma informação.

No caso do "while" que significa "enquanto", ele executará todas as iterações até encontrar a informação que vc precisa, então se vc cria um while pra verificar um dado em um array por exemplo (que é o caso do listaDeTeclas) ele vai retornar todos os valores anteriores até encontrar oq vc informou.

Espero ter ajudado, Abraço!

Olá Gabriel! Estou bem e espero que você esteja!

Primeiramente, obrigado pela informação! Vou aguardar a diferença entre estes laços de repetição.

Duas aulas para frente no curso de JavaScript para Web, com a professora Vanessa ela explicou a aplicação do for, que deixa até o código mais legível.

Entendi onde esta errando no código For:

for (let contador = 0; contador < listaDeTeclas.length; contador ++)

Nesta linha de código em especifico, estava separando por vírgula ao invés de ponto e vírgula.

Obrigado novamente pela ajuda!