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

Como funciona o while com o isNaN()?

Na atividade de exemplo do isNan(), mostra que a condição laço será quebrada caso retorne "true" (indicando que foi digitado apenas numeros), porém na minha compreensão durante a aula o laço while só é quebrado quando a expressão para repetição se torna "false" (ou seja não é mais satisfeita a condição de repetição).

Minha dúvida é se o retorno de: while ( isNaN(idade) ) é true, por que o laço é quebrado? Para mim o programa devia ficar em um looping.

3 respostas
solução!

Oi Matheus, só retorna true se não for um número

NaN -> Not-a-Number (não número)

isNAN() -> É um não numero.

isNaN('não número') // true

isNaN(22) // false

Agora sim consegui entender, estava realmente faltando a compreensão do isNaN (é um não número).

Muito obrigado, Luis Dias!

Eu Fiz uma função para validar, mas acabei fugindo um pouco da ordem cronológica da aula.

<meta charset="UTF-8">
<h1>ATIVIDADES</h1>

<script>



    function validarNumero(){

        do{

            var validar = true;
            var pontuacao = 0;            
            var numTemp = prompt("Digite um número");

            for(var i = 0; i < numTemp.length; i++){

                if(isNaN(numTemp[i])){
                    if(numTemp[i] == "." || numTemp[i] == ","){
                        pontuacao++;
                    }else{
                        validar = false;
                        break;
                    }                    
                }

            }

        }while(validar == false || pontuacao > 1);

        return parseFloat(numTemp.replace(',', '.'));
    }

    var numero = validarNumero();    
    document.write("O número digitado foi: " + numero);
</script>