Vamos analisar o código fornecido e fazer alguns ajustes:
Código Original
let numeroDigitado = prompt("Digite um número: ");
if (numeroDigitado == 0) {
alert("Informe um número diferente de zero.");
}
if (numeroDigitado < 0) {
alert("O número informado é negativo.");
} else {
alert("O número informado é positivo.");
}
Problemas Identificados
Verificação do Zero:
- O código verifica se o número digitado é
0
e mostra um alerta, mas ainda continua para as outras verificações. Isso pode causar alertas contraditórios.
Verificação de Positivo/Negativo:
- O segundo
if
deve ser else if
para evitar que ambos os blocos sejam executados quando numeroDigitado
é 0
.
Tratamento de String:
- O valor retornado pelo
prompt
é uma string, então é necessário convertê-lo para número antes de realizar comparações numéricas.
Código Corrigido
let numeroDigitado = prompt("Digite um número: ");
numeroDigitado = Number(numeroDigitado); // Converte a entrada para número
if (isNaN(numeroDigitado)) {
alert("Por favor, digite um número válido."); // Verifica se a entrada é um número válido
} else if (numeroDigitado === 0) {
alert("Informe um número diferente de zero.");
} else if (numeroDigitado < 0) {
alert("O número informado é negativo.");
} else {
alert("O número informado é positivo.");
}
Explicação das Correções
Conversão para Número:
- A linha
numeroDigitado = Number(numeroDigitado);
converte a string retornada pelo prompt
para um número, permitindo comparações numéricas adequadas.
Verificação de Validade:
isNaN(numeroDigitado)
verifica se a entrada é um número válido. Se não for, exibe um alerta pedindo um número válido.
Estrutura de Controle:
else if
é usado após verificar se o número é 0
, para garantir que não haja alertas contraditórios.
Resposta Completa
Aqui está a resposta completa com as correções e melhorias necessárias:
// Verifique se um número digitado pelo usuário é positivo ou negativo.
// Mostre um alerta informando.
let numeroDigitado = prompt("Digite um número: ");
numeroDigitado = Number(numeroDigitado); // Converte a entrada para número
if (isNaN(numeroDigitado)) {
alert("Por favor, digite um número válido."); // Verifica se a entrada é um número válido
} else if (numeroDigitado === 0) {
alert("Informe um número diferente de zero.");
} else if (numeroDigitado < 0) {
alert("O número informado é negativo.");
} else {
alert("O número informado é positivo.");
}