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哦 . 如果解答了你的疑惑 ,望采纳 , 祝学习愉快 !