Importante

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!

1
resposta

Contagem regreciva


// primeira tentativa
console.log('contagem Regreciva');

let contagemRegreciva = 10;
let ordem = 'Lançar';

while(contagemRegreciva !== 0){
    contagemRegreciva--;
    console.log(contagemRegreciva);
    
    if (contagemRegreciva === 0) {
        console.log(ordem);        
    }
}

// outro resposta 
console.log('contagem Regreciva 2');


let contagemRegreciva1 = 10;

while (--contagemRegreciva1 >= 0) {
    console.log(contagemRegreciva1 === 0 ? ordem : contagemRegreciva1);    
}

// como n esta mostrando o 10 e eu so vi agora outra tentativa com o DO while
console.log('contagem Regreciva 3');

let contagemRegreciva2 = 10;

do {
    console.log(contagemRegreciva2);
    
} while (--contagemRegreciva2 >= 0) {
    console.log(contagemRegreciva2 === 0 ? ordem : contagemRegreciva2);
}

// n deu bao com o DOWHILE kkkk mas ja vi o erro 
console.log('contagem Regreciva 4');

let contagemRegreciva3 = 10;

while(contagemRegreciva3 !== 0){
    console.log(contagemRegreciva3);
    contagemRegreciva3--;
    
    if (contagemRegreciva3 === 0) {
        console.log(contagemRegreciva3);
        console.log(ordem);        
    }
}
1 resposta

Oi, Tairone. Tudo bem com você?

Legal você ter compartilhado as quatro tentativas, principalmente porque dá para perceber a evolução enquanto você foi testando diferentes estruturas de repetição. Na primeira tentativa, existe uma diferença importante em relação à saída esperada: o 10 não é exibido, porque o decremento acontece antes do console.log(). Como você percebeu depois, esse é justamente um ponto importante para observar quando a ordem das operações dentro do laço influencia o resultado.

Na segunda tentativa, a lógica do while também começa decrementando a variável por causa do --contagemRegreciva1 na própria condição. Já na terceira tentativa, o do...while não funciona dessa forma porque o bloco do termina antes do while; aquele segundo bloco entre { } não pertence ao laço. Nesse caso, a quarta tentativa ficou mais próxima da saída solicitada, pois primeiro exibe o valor atual e só depois decrementa a variável.

Uma dica para continuar praticando é observar sempre se a variável é decrementada antes ou depois da impressão. Como você testou while e do...while, qual dessas estruturas você acha que representa melhor uma situação em que a primeira execução precisa acontecer obrigatoriamente antes da verificação da condição?

Parabéns pela exploração das diferentes possibilidades, Tairone. Testar abordagens e identificar os próprios erros faz parte do aprendizado. Continue compartilhando seus exercícios por aqui, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!