Boa noite, @Danielli Meilene Coutinho Arçari
Referente a sua dúvida ("E se o usuário digitar um número negativo ou um número float, o que eu devo fazer?"), essa é uma questão que é dividida em duas partes (a ordem que vou apresenta-las não é importante).
a) Se o usuário digitar um número negativo;
b) Se o usuário digitar um número float;
c) (BÔNUS) Se o usuário não digitar nada (ou apertar cancelar no prompt);
.
OBS: Vou incluir minha solução após as explicações.
.
a) Para evitar que o usuário digite um número negativo, podemos adicionar uma estrutura condicional que verifica se o valor inserido é menor que zero (ou maior que 0 - como você já fez). Caso seja, podemos exibir uma mensagem de erro ou solicitar uma nova entrada.
b) Para solucionar esse outro problema, podemos utilizar do parseInt(string)
(MDN). A função parseInt()
converte o valor passado como parâmetro (dentro dos parêntesis) para um número inteiro. Se for passado um número decimal (float), ele será convertido descartando as casas decimais, ou seja, será arredondado para baixo até o número inteiro mais próximo.
c) (BÔNUS) Para solucionar esse terceiro problema, podemos fazer duas verificações. A primeira será fazendo uma comparação do que foi digitado com uma string "vazia" ("") {valorDigitado !== ""
}, caso o usuário não digite nada e aperte "ok" no prompt. E a segunda seria fazendo uma comparação com null {valorDigitado !== null
} (null é diferente de ""), que ocorre quando o usuário aperta em "cancelar" no prompt (e ai sua variável não seria "preenchida"/inicializada).
Minha solução:
//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
let contador = 0;
let numeroInformado = prompt('Por favor, informe um número inteiro maior que 0: ');
//console.log(numeroInformado);
/* Verifica se o que foi digitado não é null
e também se não é "vazio" ("") */
if (numeroInformado == null || numeroInformado == "") {
console.log('Informe algum valor');
} else {
// Verifica se o valor informado não é menor ou igual a zero
if (numeroInformado <= 0)
{
console.log("Informe um número maior que zero")
} else {
/* Enquanto (while) o contador (que começou em 0) for menor ou igual
ao valor informado (convertido em inteiro) o código dentro do while vai
continuar a ser executado*/
while (contador <= parseInt(numeroInformado)) {
console.log(contador);
contador++;
}
} // fim if negativo
} // fim if null ou "vazio"