4-4 作业
来源:4-4 编程练习
haitaodai
2018-07-06 11:15:40
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JS</title>
</head>
<body>
<script type="text/javascript">
var str = prompt("请输入本次运动时间");
function time(world){
var sum;
if (isNaN(world)){
alert("输入正确的时间");
var world = prompt("请输入本次运动时间");
}else{
if (world>20){
sum = Math.ceil(world);
}else if (world<=20 && world>0) {
sum = Math.floor(world);
}else{
alert("输入的时间不能为负数");
var world = prompt("请输入本次运动时间");
}
}
document.write("本次运动时间为"+sum+"分钟");
}
time(str);
</script>
</body>
</html>如上符合条件的输出正确,但是非数值和负数的时候,第一次输入返回正确,第二次输入同样的值返回结果是未定义,很费解不知哪里出了问题。
2回答
钰与宸
2018-07-25
因为你的函数里面的语句都是执行一次的,当你第二次输入时,相当于执行完prompt后,if语句结束,就跳出判断,直接就到输出语句了。而此时因为你输的不正确,此时的sum并没有被赋值,所以就输出“未定义”。
建议增加while循环,或者是调用自身函数。
如下方法是增加while的:

好帮手慕夭夭
2018-07-06
经过测试 , 输入时间是可以输出的 ,如下 :

如果弹窗没有输入内容 , 会显示undefined哦 . 如果解答了你的疑惑 ,望采纳 , 祝学习愉快 !