我是javascript的新手,我已经广泛地研究过如何从提示符中检查用户输入,看看用户是否给出了正确的数字。我已经尝试过result!==isNan()
result==isNan(Nan)
和其他变体。你能告诉我为什么这个不起作用吗?如何让它起作用?
var result = prompt("Give number between 4-10");
while (result<4||result>10||result==isNaN(result))
{
var result = prompt("You need to give number between 4-10!");
}
alert ("success")
发布于 2020-04-09 22:04:26
您可以尝试通过isNan(result) == true
检查结果的值
<script>
var result = prompt("Give number between 4-10");
while (result < 4||result > 10|| isNaN(result) == true)
{
var result = prompt("You need to give number between 4-10!");
}
alert ("success")
</script>
发布于 2020-04-09 23:31:30
你的 result==isNaN(result)
代码永远不会被运行
// a prompt returns a string or null ( if cancelled )
// The values are casted to a number when comparing with a value of the type number
console.log( Number(null) ) // 0
console.log( Number('5') ) // 5
console.log( Number('') ) // 0
// this means the values of null and '' are never even reach your isNan() code because 0<4 resolves to true. Thus repeating your loop.
var result = prompt("Give number between 4-10");
while ( result<4 || result>10 ) {
result = prompt("You need to give number between 4-10!");
// you could break your loop if an use cancels here
if( result === null ) break;
}
alert ( `success: ${result}`)
可以使用递归而不是while循环
askUser();
function askUser(){
let answer = prompt('Hello would you please enter a number between 4 and 10?');
if( answer>4 && answer<10 )
alert('Thank you, you are awesome!')
else if( answer === null )
alert('Really you can\'t think of a number between 4 and 10??!?!?')
else
askUserAgain();
}
function askUserAgain() {
let answer = prompt('This is not a number between 4 and 10, you are a fool! Please try again.');
if( answer>4 && answer<10 )
alert('Thank you, you are awesome!')
else if( answer === null )
alert('Really you can\'t think of a number between 4 and 10??!?!?')
else
askUserAgain();
}
https://stackoverflow.com/questions/61122733
复制相似问题