Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, Mateus. Como vai?
Fique tranquilo, o conceito de loops e do laço while pode parecer um pouco confuso no começo mesmo, e usar a "cola" (o gabarito ou o código de referência) faz parte do processo de aprendizado para entender como as coisas funcionam por trás dos panos.
Analisando a imagem do seu código, a boa notícia é que a estrutura do seu while (linhas 18 a 21) está perfeitamente correta. O loop vai funcionar direitinho!
Para que você não precise mais de cola e entenda de uma vez por todas como o while funciona, pense nele como uma engrenagem que repete passos baseada em 3 pilares fundamentais. Vamos analisar como você aplicou cada um deles:
let numero = 1;while (numero <= 10) { ... }while significa enquanto. Então, o JavaScript lê isso como: "Enquanto a variável numero for menor ou igual a 10, continue executando o que está aqui dentro".numero++;numero++ soma +1 ao valor atual da variável. Sem essa linha, a variável numero valeria 1 para sempre, a condição nunca seria atingida e o seu navegador travaria em um loop infinito.O computador executa o código imprimindo o 1, soma 1 (vira 2), volta lá no topo e testa: "2 é menor ou igual a 10?". Como é verdadeiro, ele roda de novo. Ele fará isso sucessivamente até imprimir o 10. Quando virar 11, a condição se tornará falsa e o loop chegará ao fim.
Navegando pelo restante do seu código na imagem, notei que alguns outros desafios do capítulo ficaram com pequenos erros de digitação (sintaxe) que vão impedir o JavaScript de rodar o seu script corretamente.
O principal detalhe é o uso de aspas simples em testes lógicos e em f-strings (as chamadas template strings). Veja o que precisa ser corrigido:
Nas linhas 1 e 8 (Template Strings):
Para conseguir injetar variáveis dentro do texto usando ${var}, você não pode usar aspas simples ('). O JavaScript exige o uso do sinal de crase (```).
console.log ('a soma de ${valor1}... ')console.log(a soma de ${valor1} e ${valor2} é igual a ${resultado});Nas linhas 11 e 25 (Condicionais):
Você colocou o nome das variáveis entre aspas simples: if ('idade' > 18) e if ('nota' > 7). Quando você coloca aspas, o JavaScript deixa de entender que aquilo é uma variável com um número dentro e passa a ler como um texto literal (as palavras "idade" e "nota"). Isso quebra o teste de maior ou menor.
if ('idade' > 18)if (idade > 18)Na linha 15:
Ficou um comando console.log incompleto e sem os parênteses no final. Você pode apagá-lo ou completá-lo para não gerar um erro no console do seu navegador.
Faça esses pequenos ajustes no seu arquivo app.js e teste rodar a página de novo. Ver o código funcionando sem erros na tela vai te ajudar bastante a fixar esses conceitos!
Espero que possa ter lhe ajudado!