2
respostas

[Dúvida] Proposições Para Correção - Atividade Loops e Tentativas

Bom dia.

Verifiquei que a resolução proposta por vocês envolvia um código mais "limpo" porém assim mesmo das 4 propostas de exercício, 2 acredito que consegui chegar ao objetivo.

Estou postando aqui um descritivo com as resoluções que propus para cada um dos 4 itens e gostaria que comentassem como poderia corrigir os de número , pois quando rodei, apresentaram respostas não desejadas em relação à proposição.

Desafio 1 - OK Desafio 2 - Dúvida Desafio 3 - OK Desafio 4 - Dúvida

Os códigos estão descritos pela ordem dos desafios.

Desde já agradeço.

Desafio 1:

// Inicio Considerando Contador = 1
// Início Considerando Numero = 0
let contador = 1;
let numero = 0;

// Coloco Limite de Incrementos
// E Incremento em 1 Cada Ciclo
// No Alert dou a saída do número de incrementos (Teste de Mesa)
// São 11 Incrementos e 10 Numeros Exibidos

while (contador <= 10){
    contador ++;
    numero ++;
    alert(`Numeros na Sequência: ${numero}`);
}
    console.log(contador);
    alert(`Ocorreram ${contador} incrementos`);

Desafio 2:

// 2.   Crie um contador que começa em 10 e vá até 0 usando um loop while. Mostre cada número.

let contador = 10;
let numero = 0;

while (contador <=10){
    contador ++;
    numero ++;
    alert(`Numeros na Sequência: ${numero}`);
    numero ++;
}    
    console.log(contador);
    alert(`Ocorreram ${contador} decrementos`);

Desafio 3:

/* 3. Crie um programa de contagem regressiva. 
Peça um número e conte deste número até 0, usando um loop while no console do navegador.
*/

// Definindo Variáveis
// escolhaNumero - Usuario Atribui
// contagemRegressiva - Decremento em Relação ao Nùmero Digitado

let escolhaNumero;
console.log(escolhaNumero); 
let contagemRegressiva;

    escolhaNumero = prompt('Escolha um numero aleatorio');

// Loop While Para Exibir os Números
// Atua como um Contador    

        while (escolhaNumero >= 0){
            alert (`Exibindo numero ${escolhaNumero}`);
            contagemRegressiva == escolhaNumero --;
            alert (`Contagem Regressiva para chegar ao zero`);
        }
// Ao chegar ao Zero Exibe Mensagem que Atingimos o Objetivo
// Tarefa Realizada Fora do While

        contagemRegressiva = 0;
        alert(`Chegamos ao ${contagemRegressiva} zero`);

Desafio 4:

/* 4. Crie um programa de contagem progressiva. 
Peça um número e conte de 0 até esse número, usando um loop while no console do navegador.
*/

// Definindo Variáveis
// escolhaNumero - Usuario Atribui
// contagemProgressiva - Decremento em Relação ao Nùmero Digitado

let escolhaNumero;
let contagemProgressiva = 0;

    escolhaNumero = prompt('Escolha um numero aleatorio');

// Loop While Para Exibir os Números
// Atua como um Contador    

        while (contagemProgressiva == escolhaNumero){
              console.log(contagemProgressiva);
              escolhaNumero == contagemProgressiva ++;
              alert (`Exibindo contagem ${contagemProgressiva} progressiva.`);  
        }
// Ao chegar ao Numero Exibe Mensagem que Atingimos o Objetivo
// Tarefa Realizada Fora do While
        alert (`Contagem Progressiva para chegar ao numero desejado`);
        alert(`Chegamos ao ${escolhaNumero} numero desejado`);

Obrigado!

2 respostas

Desafio2: Obs1: Da forma que está contador <=10 (menor ou igual) vai entrar apenas 1x no laço porque o contador já é 10. Correção: contador >=numero , (maior ou igual) dessa forma enquanto ele for maior ou igual a zero vai ser executado o bloco while.

Obs2: Vc está acrescentado o número 2x (antes e depois do alert), deve ser feito apenas 1x e após imprimir o primeiro resultado, feito isso a variável vai ter 1 valor a mais e vai seguindo a logica de contagem crescente.

Obs3: Pra mostrar quantas vezes foi incrementado voce pode usar o próprio número, já que ele começa em zero e vai ser incrementado até atingir o valor desejado. Note que sempre vai ser o valor do contador +1 porque é de 0 a 10 (11 digitos).

Ficaria:

let contador = 10;
let numero = 0;

while (contador >= numero){
    alert(`Numeros na Sequência: ${numero}`);
    numero ++;
}    
    console.log(numero);
    alert(`Ocorreram ${numero} decrementos`);
console.log(contador);
    alert(`Ocorreram ${contador} decrementos`);

Desafio4: Você deu o comando para executar caso a contagemProgressiva (que é zero por atribuição) seja igual ao número escolhido. Se o usuário digitar qualquer número diferente de zero nao entra no loop (while) e pula logo para dois últimos alerts ou seja, nao vai fazer contagem nenhuma.

Uma sugestão seria trocar o == por <= dessa forma qualquer número maior do que zero que for digitado, entra na condicional pra usar a lógica da contagem progressiva.

Não entendi a sua intenção ao fazer essa parte: escolhaNumero == contagemProgressiva ++; Vai funcionar normal, já que continua fazendo o principal que é incrementando +1 em cada interação, mas aconselho deixar apenas contagemProgressiva ++

A parte corrigida ficaria assim:

while (contagemProgressiva <= escolhaNumero){
      console.log(contagemProgressiva);
      contagemProgressiva ++;
      alert (`Exibindo contagem ${contagemProgressiva} progressiva.`);  
}

Todas as explicações foram ótimas