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>

如上符合条件的输出正确,但是非数值和负数的时候,第一次输入返回正确,第二次输入同样的值返回结果是未定义,很费解不知哪里出了问题。http://img.mukewang.com/climg/5b3eded10001b51a04960174.jpg

写回答

2回答

钰与宸

2018-07-25

因为你的函数里面的语句都是执行一次的,当你第二次输入时,相当于执行完prompt后,if语句结束,就跳出判断,直接就到输出语句了。而此时因为你输的不正确,此时的sum并没有被赋值,所以就输出“未定义”。

建议增加while循环,或者是调用自身函数。

如下方法是增加while的:

http://img.mukewang.com/climg/5b57e06b0001bdb405760412.jpg


0

好帮手慕夭夭

2018-07-06

经过测试 , 输入时间是可以输出的 ,如下 :

http://img.mukewang.com/climg/5b3f05ba0001624f02080057.jpg

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

0

0 学习 · 36712 问题

查看课程

相似问题

2-4 作业

回答 1

4-4作业问题

回答 1

4-4交作业

回答 1

4-4作业批改

回答 1

5-4作业

回答 2