Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

inverso do NaN

Me tirem uma duvida,

Se eu quisesse fazer o inverso, ou seja, aceitar apenas strings e repetir o prompt enquanto o usuário digita números. Como vcs sugeririam?

4 respostas

Olá Daniel, tudo bem?

Não entendi muito bem a sua dúvida. Na verdade todos os dados digitados através do prompt já são strings. Tanto que é preciso usar um parseInt() ou parseFloat() para transformá-lo em um número.

Tudo bem! desculpe, O que eu quis dizer é que tem um exercício que versa sobre as funções prompt, while e IsNaN. No código abaixo, o usuário precisa, necessariamente, entrar com um número, caso contrário a função alert é executada novamente, correto?

var idade = parseInt(prompt("Digite sua idade"));

while( isNaN(idade) ) { idade = parseInt(prompt("Digite sua idade"));}

alert(idade);

Minha dúvida é como eu faria o inverso, ou seja, o usuário é obrigado a entrar com um texto e, caso entre com o número, a função alert se repete. Existe uma função pra isso?

não sei se fui claro, mas obrigado.

Você pode usar a palavra reservada typeof da seguinte forma:

while(typeof nomeDaVariavel === 'string')

É muito importante usar os três iguais neste caso ao invés de 2. Dois iguais são uma comparação de valor, três iguais representam uma comparação de tipos.

Porém, é como o André falou , tudo que for digitado pelo prompt() é uma string, a menos que você faça uma conversão. Então você receberia "32" como texto, por exemplo, ao invés de número

solução!

Olá Daniel,

Entendi o que pretende fazer. Uma opção seria a abaixo:

var nome = prompt("Digite seu nome");

while( ! isNaN(nome) ) {
    nome = prompt("Digite seu nome");    
}

alert(nome);

Você retira o parseInt(). Com ele o programa tentaria transformar uma palavra em número e você obteria um NaN (Not a Number).

Depois inverte a lógica dentro do while. O operador ! significa not. Enquanto você digitar somente números ele solicitará para digitar uma palavra novamente.

Testa aí e nos diga o resultado.

Bons estudos!