老师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回答

好帮手慕码

2020-11-14

同学你好,解答如下:

1、调用函数的时候需要返回值,那么就需要用到return。参考一个小例子:return用来设置函数的返回值,所以函数调用时返回的值,就是return后面的内容。当a调用的时候,传入了5,满足最后一个else ,所以会打印出“数值等于5”。

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

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

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

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

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

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

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

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

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

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

3、return 不仅可以结束函数,还可以返回一个值给函数哦。

祝学习愉快~

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


0

好帮手慕码

2020-11-14

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

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

祝学习愉快~

0
higorous阿炎
h 我把return n写在函数里面也可以。搞不懂为什么需要写返回值,这个函数体本来就是成立的呀,而且我最后也调用的了函数。当时记得只要函数体内不是死循环就可以不用return了,遇到return就是停止执行下面的语句。 <script> var time=Number(prompt('请输入本次运动时间')); //新变量接收取整后的数 function n(){ if(time>=20){ //第二步判断 console.log(Math.ceil(time)+'分钟'); }else{ console.log(Math.floor(time)+'分钟') } return n; } //第三步 用一个新变量接收取整后的时间并输出 var result=n(); console.log(result) </script>
h020-11-14
共1条回复

好帮手慕码

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>

祝学习愉快~

0
higorous阿炎
h 您的解答是对的,重新定义了一个变量sum. 这段时间一直学函数,老师我封装了一个函数调用的时候怎么显示undefined呢?要是用函数表示怎么才能正确表示结果呢? <script> var time=Number(prompt('请输入本次运动时间')); //新变量接收取整后的数 function n(){ if(time>=20){ //第二步判断 console.log(Math.ceil(time)+'分钟'); }else{ console.log(Math.floor(time)+'分钟') } } //第三步 用一个新变量接收取整后的时间并输出 var result=n(); console.log(result) </script>
h020-11-13
共1条回复

0 学习 · 15276 问题

查看课程