zoukankan      html  css  js  c++  java
  • 学习AS3菜鸟起飞吧之—函数(二):函数之返回语句

    如果希望函数有返回值,必须使用return语句


    下面的函数除了输出信息以外,还返回了输出的信息。这时函数的返回类型从void类型变成了“*”类型:

    var s:String = trace("hello");
       function traceMsg(msg:*)
       {
            trace(msg);
            return msg;
        }

    使用return语句还可以中断函数的执行,这个方式经常会用在判断语句中。如果某条件为false,则不执行后面的代码,直接返回。

    下面的代码判断函数的参数是不是数字,如果不是数字,就使用return语句直接返回,而不执行后面的代码:

    function area(r:*):void
        {
             var b:Boolean = r is Number;
             if(!b)
             return;
             trace("后面的代码");
        }

    这里定义的函数把r作为参数,在函数中,首先判断参数是否数字,如果不是数字利用return语句,直接退出该函数,后面的代码就不执行了。

    比较下面调用函数的结果,前者能执行函数内的输出语句,后者则不能: 
    area(7); 
    area("7");

     在有些函数中需要编写多个返回语句,如,在条件语句中每一个条件分支都可以对应一条返回语句。

    下面的方法根据参数来返回不同的实例:

    function factory(obj:String):Load {
            if (obj=="xml") {
                    trace("return LoadXml instance");
                    return new LoadXml  ;
            } else if (obj=="sound") {
                    trace("return LoadSound instance");
                    return new LoadSound  ;
            } else if (obj=="movie") {
                    trace("return LoadMovie instance");
                    return new LoadMovie  ;
            } else {
                    trace("error");
            }
    }

    怎样编写函数

      我们通过编写一个求距离的函数例子,来说明函数的编写过程。

      首先要确定函数的参数,由于点在Flash中是用二维坐标表示的,所以每个点就需要两个参数,求两点之间的距离函数就需要4个函数,由于坐标和距离都是用数字表示的,所以参数的类型是Number类。

      函数的初步框架:

    function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
    {
        return 0;
    }

    函数中加入了返回0的return语句,这个返回语句是必须的,因为只有返回了Number类型的值,测试程序时才不会出错。

    要测试函数是否正确只需调用一下函数。 
    var dis:Number = distance(0,0,100,100); 
    trace(dis);

    检测函数的定义没有错误,就可以在函数内一步步的增加代码。对于复杂的函数,每增加一些代码后,都要及时进行测试,有错误发生时可以及时改正。

    向函数内添加代码:

    function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
    {
        var x:Number = x2 - x1;
        var y:Number = y2 - y1;
        trace("x="+ x,"y="+ y);
        return 0;
    }

    上面往函数内增加了x和y的坐标之差,还加入了 trace()函数来调试结果。

    调用函数后会在输出面板中显示x和y的值,通过简单的计算就可以确定x和y值的正确性。

    确定无误后,可以把trace()函数注释掉。

    最后在函数内加入求距离的代码:

    function distance(x1:Number,y1:Number,x2:Number,y2:Number):Number
    {
        var x:Number = x2 - x1;
        var y:Number = y2 - y1;
       // trace("x="+ x,"y="+ y);
        var dis:Number = Math.sqrt(x * x + y * y);
        return dis;
    }

    当调用上面的函数后,就可以输出两点间的距离。但是由于点(0,0)到点(100,100)的距离手工很难计算,因此不能保证求出的距离是否正确。

    这时最好输出知道距离的两点,来检测结果是否正确,根据勾三股四弦五的常识,可在函数内输入下面的坐标来计算:

    var dis:Number = distance(0,0,3,4);
    trace(dis);

    如果输出的结果为5,就说明求距离的函数编写好了。

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    AngularJS学习笔记1
    实习第2天
    转:JavaScript事件冒泡简介及应用
    icon font字体图标字库汇总
    Express4--说明
  • 原文地址:https://www.cnblogs.com/xigua1hao/p/3959779.html
Copyright © 2011-2022 走看看