1
resposta

[Projeto] 06 Lista de exercícios

//1. Contador de 1 a 10
//Use um for para mostrar no console os números de 1 até 10, um por linha.
for (let i = 1; i <= 10; i++) {
    console.log(i)
}

//2. Soma de 1 a 100
//Some todos os números de 1 a 100. Mostre o resultado no final com uma mensagem explicativa.
let soma = 0

for (let i = 1; i <= 100; i++) {
    soma += i
}
console.log(soma)

//3. Tabuada personalizada
//Peça um número e mostre a tabuada desse número (de 1 a 10) usando um for.
let numero = 10
let multiplicacao

for (let i = 0; i <= numero; i++) {
    multiplicacao = i * numero
    console.log(`${i} x ${numero} = ${multiplicacao}`)
}
//4. Contagem regressiva
//Use while para contar de 10 até 0 no console. Mostre uma mensagem no fim: "Contagem finalizada!".
let contador = 10
while (contador > 0) {
    console.log(contador)
    contador--
}
console.log("Contagem finalizada!")
//5. Receber números até digitar 0
//Use do...while para simular a entrada de números. O programa deve continuar até que o usuário digite 0. Ao final, mostre quantos números foram digitados.
numeroDigitado = [13, 14, 15, 0]
let i = 0

do {
    console.log("Continua!")
    i++
} while (numeroDigitado[i] != 0)

    console.log(`Números digitados: ${i+1}`)

//6. Jogo do número secreto
//Defina uma variável numeroSecreto com o valor 7. O usuário tem 3 tentativas para acertar (simule essas tentativas com variáveis). Mostre mensagens de "Acertou!" ou "Tente novamente".
let numeroSecreto = 7
let tentativas = 1
let numerosSimulados = [1, 3, 5, 7]
let j = 0

do {
    if (numeroSecreto == numerosSimulados[j]) {
    console.log("Acertou!")
    } else {
    console.log("Tente novamente!")
    }
    tentativas++
    j++
} while (tentativas <= 3)
    console.log("Número de tentativas excedido!")


//7. Idade ao longo dos anos
//Crie uma variável anoNascimento e anoAtual. Use um for para listar a idade da pessoa ano a ano até o ano atual.
let anoNascimento = 1968
let anoAtual = 2025
let somatorio = 0

for (anoNascimento; anoNascimento <= anoAtual; anoNascimento++) {
    console.log(`Em ${anoNascimento}, você tinha ${somatorio} anos.`)
    somatorio++
}
//8. Listando números pares
//Mostre todos os números pares entre 1 e 50 usando for.
let inicio = 1 
let listona = []

for (inicio; inicio <= 50; inicio++){
    if (inicio % 2 == 0) {
        listona.push(inicio)
    }
}
console.log(listona)
console.log(`Entre os números 1 e 50, há ${listona.length}`)
//9. Contar múltiplos de 3 entre 1 e 100
//Mostre no console quantos números entre 1 e 100 são divisíveis por 3.
let inicial = 1
let somazona = 0
for (inicial; inicial <= 100; inicial++) {
    if (inicial % 3 == 0) {
        console.log(inicial)
        somazona++
    }
}
console.log(`A quantidade de números divisíveis por 3 entre 1 e 100 é de ${somazona}`)

//10. Menu com repetição
//Crie um menu simples que exibe opções como "1 - Ver saldo", "2 - Fazer depósito", "3 - Sair". Use do...while para repetir o menu até o usuário escolher sair.
let selecoes = [1, 2, 1, 3]
let comeco = 0

while (selecoes[comeco]) {
    if(selecoes[comeco] == 1) {
        console.log("1 - Ver saldo")
    } else if(selecoes[comeco] == 2){
        console.log("2 - Fazer Depósito")
    } else {
        console.log("3 - Sair")
        break;
    }
    comeco++
}
1 resposta

Olá, Isabella!

Parabéns pela sua dedicação em fazer todos os exercícios e por compartilhar suas soluções! Isso mostra que você está realmente se empenhando no aprendizado de JavaScript.

Seu código está muito bom e a lógica para a maioria dos exercícios está correta e funcional.

No entanto, notei apenas dois pontos nos exercícios 5 e 6 que podem ser ajustados para refletir melhor o que é esperado em um cenário real de entrada de dados ou para simplificar a estrutura do laço.

Abaixo, deixo meus comentários e sugestões, mantendo o seu código o mais intacto possível.

Revisão dos Exercícios

Exercício 5: Receber números até digitar 0

O enunciado pede para simular a entrada de números e que o programa continue até que o usuário digite 0.

Você criou uma lista (numeroDigitado) e está percorrendo ela. Isso é uma excelente simulação, mas o laço do...while original foi pensado para rodar enquanto a condição for verdadeira e geralmente para receber a entrada do usuário em cada repetição (se estivéssemos em um ambiente interativo).

Sua lógica de contagem também está correta ao somar i + 1, já que a contagem começa do zero.

Sugestão de Pequeno Ajuste: Para ser ainda mais próximo da simulação de entrada, você pode usar a variável i para acessar o número e fazer a verificação no while ser baseada no número atual:


let numeroDigitado = [13, 14, 15, 0];
let i = 0; // i será o nosso contador de números digitados

do {
    // Você pode, inclusive, mostrar o número que "foi digitado"
    console.log(`Número digitado: ${numeroDigitado[i]}`); 
    
    i++; // Incrementa o contador para o próximo número da lista
    
} while (numeroDigitado[i-1] !== 0); 
// A condição verifica o último número acessado (i-1)
// e o laço só para quando esse número for 0.

console.log(`Números digitados: ${i}`);
// Ao final, 'i' já é o total de números (13, 14, 15 e o 0)
// porque ele foi incrementado para contar o próprio 0.

No seu código original, a variável i era incrementada e a condição verificava o próximo elemento (numeroDigitado[i]), o que fazia o laço parar antes de processar o 0. A sua correção manual (i+1 no console.log) funcionou perfeitamente para o resultado final, mas a lógica acima reflete melhor o fluxo de "processar o número atual, e se ele não for zero, continuar".

Exercício 6: Jogo do número secreto

Aqui, o ponto principal é que o laço do...while deve ser usado para controlar as tentativas.

No seu código, o laço está rodando 3 vezes, independentemente de o número ser acertado na primeira, segunda ou terceira vez.

Em um jogo do número secreto, o ideal é que o laço pare imediatamente se o usuário acertar.

Sugestão de Correção (Usando a estrutura do...while que você escolheu):

A condição de parada deve ser dupla: ou o número foi acertado, ou as tentativas acabaram.


let numeroSecreto = 7;
let numeroTentativa = 0;
let numerosSimulados = [1, 3, 7]; // Simulação de 3 entradas
let j = 0;

do {
    // Pega o número simulado para a tentativa atual
    numeroTentativa = numerosSimulados[j]; 
    
    if (numeroSecreto === numeroTentativa) {
        console.log("Acertou!");
        // Se acertou, podemos encerrar o laço com um 'break'
        break; 
    } else {
        console.log("Tente novamente!");
    }
    
    j++; // Passa para a próxima simulação
    
} while (j < 3); // O laço roda enquanto houver tentativas (j < 3)

// Verificação final
if (numeroSecreto !== numeroTentativa) {
    console.log("Número de tentativas excedido! O número era: " + numeroSecreto);
}
O uso do break garante que, se o usuário acertar na primeira ou segunda tentativa, o programa sai imediatamente do do...while, como em um jogo real.

Os outros exercícios estão perfeitos!

Contador (1): Correto.

Soma (2): Correto.

Tabuada (3): Correto.

Contagem Regressiva (4): Correto.

Idade (7): Correto, usando o somatorio de forma bem inteligente.

Pares (8): Correto, ótima forma de usar o operador módulo (%).

Múltiplos de 3 (9): Correto.

Continue assim!