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

Dúvida quanto a entrada de dados acompanhado do while e condições

Bom, tenho uma dúvida quanto um exercício de while por fora que estou tentando resolver. Porém ao utilizar a entrada com o prompt e convertendo para inteiro, não consigo compreender o por que de não printar na tela a mensagem que se encontra na condição if, eu tento testar a execução do código, tentando inserir os números com números negativos ou acima de dez pra cair diretamente no else umas cinco vezes ou mais, e após isso ao tentar testar com o número que cai na condição do if ele atribui, porém não imprime no console, só ficam os prints das tentativas erradas que servem pra condição else, isso tem alguma relação com o armazenamento da memória no browser? Se puderem me ajudar ou esclarecer essa dúvida agradeço muito, se por ventura conter algum erro ou falha minha no código estou aberto a sugestões de melhoria ou correções.

let nota = parseInt(prompt("Escolha uma nota entre 1 e 10: "));
if (nota >= 1 && nota <= 10) {
  console.log(`Nota = ${nota.toFixed(2)}`);
}
else {
  while (nota < 1 || nota > 10) {
    console.log("O número não é maior e nem menor que dez, tente novamente!");
    nota = parseInt(prompt("Escolha uma nota entre 1 e 10: "));
  }
}
4 respostas

Oi, Lucas, tudo bem?

Não sei se entendi perfeitamente a sua questão. Você queria que quando a sua condição entrasse no while, assim que você acertasse o valor da condição if, voltasse para o console.log(Nota = ${nota.toFixed(2)}); e mostrasse o valor que foi digitado, certo? Eu testei e foi dessa forma: https://imgur.com/a/DE9eIj1

Pelo console, dá pra ver a quantidade de vezes que cai no while, colocando valores fora do if, 6 vezes, depois quando coloquei o valor esperado, no caso, 2, foi imprimido.

Oi Laís, tudo ótimo, e com você?, Obrigado por responder. Sim, é isso mesmo. Estranho, no meu console do browser do chrome só aparece as respostas quando cai no else, tirei até uma foto aqui: https://imgur.com/a/cmwNcjt Será se é alguma configuração do console do browser que não permite exibição no meu? Ou será que deixei algo desabilitado?

solução!

Oi, Lucas!

Eu testei diretamente no console do navegador. Vi que você utilizou um arquivo, num arquivo, como no console já foi apresentada a mensagem de erro, ele não consegue recebe outro console.log dinamicamente, no caso, atualizar o console com os dados do usuários para receber o valor da condição correta, já tendo um valor sendo recebido que é de valores não aceitos na condição.

Então cara, comigo funcionou corretamente, porém, na minha opinião esse while é desnecessário, podendo ser substituído por um else if com a mesma condição ou somente um else, pois as condições possíveis já estão todas no primeiro if