老师7-5这道题感觉自己的思路勉强到这,感觉漏洞百出学的知识糅杂在一起。
来源:7-5 编程练习
Vigorous阿炎
2020-11-13 18:48:46
<script>
var time=Number(prompt('请输入本次运动时间'));
//第一步定义time为整数或浮点数
if(time>0)return;
function n(){ //新变量接收取整后的数
if(time>=20){ //第二步判断
Math.ceil(time);
}else{
Math.floor(time);
}
}
//第三步 用一个新变量接收取整后的时间并输出
n();//调用函数
</script>
在这里输入代码,可通过选择【代码语言】突出显示
3回答
同学你好,解答如下:
1、调用函数的时候需要返回值,那么就需要用到return。参考一个小例子:return用来设置函数的返回值,所以函数调用时返回的值,就是return后面的内容。当a调用的时候,传入了5,满足最后一个else ,所以会打印出“数值等于5”。

2、像同学这样写,虽然也能成立,但是在打印时间的后面,还会打印整体函数(即,函数n):

而这个是不符合练习效果的,所以return n要去掉。另外,函数如果不设置返回值,会默认返回undefined, 如下:


所以同学的代码中,去掉return n之后,会打印undefined:

而这条信息也是我们不需要的,所以建议同学按照如下方式去实现:

3、return 不仅可以结束函数,还可以返回一个值给函数哦。
祝学习愉快~

好帮手慕码
2020-11-14
同学你好,因为封装的函数没有返回值,所以后面访问的时候显示undefined。所以,这里可以使用return添加返回值,建议修改:

祝学习愉快~
好帮手慕码
2020-11-13
同学你好,代码中,问题如下:
1、不需要判断time是否大于0;
2、可以不封装函数,反而复杂了;
3、可以把计算后的时间赋值给一个变量,最后输出。
建议修改如下:
<script>
var time=Number(prompt('请输入本次运动时间'));
var sum;
//第一步定义time为整数或浮点数
// if(time>0)return;
// function n(){ //新变量接收取整后的数
if(time>=20){ //第二步判断
// Math.ceil(time);
sum = Math.ceil(time);
}else{
// Math.floor(time);
sum = Math.ceil(time);
}
document.write("您本次运动时间为"+sum+"分钟");
// }
//第三步 用一个新变量接收取整后的时间并输出
// n();//调用函数
</script>祝学习愉快~
相似问题