1
resposta

[Dúvida] Olá, estou com problemas no código abaixo quando uso os "numeroInicial" ou "numeroFinal" igual a 100 ou 1000.

alert ('CONTADOR DE NÚMEROS'); let ordem = prompt ('Qual a ordem: (1)Crescente ou (2)Decrescente'); console.log (Número de ordem = ${ordem}); let numeroInicial = prompt ('Qual o número inicial de contagem?'); let numeroFinal = prompt ('Qual o número final de contagem?'); let contador = numeroInicial; if (ordem == 1) { while (contador <= numeroFinal ) { console.log (contador); contador++ ; } } else { if(ordem == 2) { while (contador >= numeroFinal ) { console.log (contador); contador-- ; } } }

1 resposta

Use o parseInt para converter a string (texto) digitada no prompt em número, garantindo assim o funcionamento correto do código.

Dessa forma:

let ordem = parseInt(prompt('Qual a ordem: (1)Crescente ou (2)Decrescente'));
 let numeroInicial = parseInt(prompt('Qual o número inicial de contagem?')); 
 let numeroFinal = parseInt(prompt('Qual o número final de contagem?')); 

Outro detalhe é utilizar o elseif já que você deseja utilizar uma condição para caso a escolha seja 2

ficaria assim:

if (ordem == 1) {
    while (contador <= numeroFinal) {
        console.log(contador); 
        contador++;
    }
 }else if(ordem == 2){
    while (contador >= numeroFinal) {
        console.log(contador);
        contador--;
    }
 }

e você ainda pode usar uma maneira de verificar se a pessoa digitou algo diferente de 1 ou 2

if (ordem == 1) {
    while (contador <= numeroFinal) {
        console.log(contador); contador++;
    }
} else if (ordem == 2) {
    while (contador >= numeroFinal) {
        console.log(contador);
        contador--;
    }
} else {
    console.log('O número da ordem só pode ser 1 ou 2');
}