4-7练习帮忙检查,为什么输入框取消输入后就会进入死循环,那要怎么改进?
<meta charset="UTF-8">
<title>Math.random()</title>
</head>
<body>
<script>
//补充代码
var num=Math.floor(Math.random()*9+1);
var input;
while(num!=input){
input=prompt("请输入你猜的数字");
if(num==input){
alert("恭喜你猜对了");
}else if(num>input){
alert("输入的数字小了");
}else{
alert("输入的数字大了");
}
}
</script>
</body>
</html>
正在回答
可以添加一句判断,判断是否为空,如果是点了取消的话肯定获取到的input就是null,之后的判断就不让执行,参考下面的代码:
var num=Math.floor(Math.random()*9+1); var input; if(prompt("请输入你猜的数字")==null){ alert("error!"); }else{ while(num!=input){ input=prompt("请输入你猜的数字"); console.log(input); if(num==input){ alert("恭喜你猜对了"); }else if(num>input){ alert("输入的数字小了"); }else{ alert("输入的数字大了"); } } }
祝学习愉快!
外层使用while来循环,里面首先使用if(){}else{}来进行判断。当input != "" && input != null执行猜数字的环节,否则else弹出error提示,即:
<script type="text/javascript"> var num=Math.floor(Math.random()*9+1); var input; while (num != input) { input = prompt("请输入你猜的数字2"); if (input != "" && input != null) { if (num == input) { alert("恭喜你猜对了"); } else if (num > input) { alert("输入的数字小了"); } else { alert("输入的数字大了"); } } else { alert("error"); } } </script>
希望可以帮到你~
那就试试这样,输入空的时候判断空字符串,这是不是你想要的效果
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var num=Math.floor(Math.random()*9+1);
var input=prompt("请输入你猜的数字");
if(input==""){
alert("error!");
}else{
while(num!=input){
if(input==""){
alert("error!");
break;
}else if(num>input){
alert("输入的数字小了");
input=prompt("请输入你猜的数字");
}else if(num<input){
alert("输入的数字大了");
input=prompt("请输入你猜的数字");
}
}
}
if(num==input){
alert("恭喜你猜对了");
}
</script>
</body>
</html>
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星