学习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,就说明求距离的函数编写好了。

时间: 2024-10-11 21:18:16

学习AS3菜鸟起飞吧之—函数(二):函数之返回语句的相关文章

学习AS3菜鸟起飞吧之—函数(二):函数的引用

编程中经常用到函数的引用,因为函数属于复杂数据类型,所以函数与类一样,是通过引用来操作数据的. 引用函数的语法就是使用函数名.例如:事件中的接收者函数其实是通过引用来实现的. 下面的代码定义了名为onClick的函数,这个函数有个参数e,其数据类型是类类型(MouseEvent),并且有void标明这个函数没有返回值: mc.addEventListener("click",onClick); function onClick(e:MouseEvent):void { mc.x = m

学习AS3菜鸟起飞吧之—函数(四):形式参数和实际参数

函数的参数是外界与函数内部通信的方法,对于有参函数来说,函数调用时函数有数据传递的关系. 看代码: //调用函数max(5,7);//定义函数function max(x:int,y:int):int{     if(x > y)     {           x = x;      } else {              x = y;      }      return x;} 如果一个函数有返回值,可使用 return语句,并在定义函数时声明返回值的类型. 上面的代码在函数调用过程中

函数二----函数的进阶

一.命名空间(有三种) 1.内置的命名空间   -----python解释器 就是python解释器一启动就可以使用的名字存储再内置的命名空间中 内置的名字在启动解释器的时候被加载进内存里. 2.全局命名空间    -----我们写的代码,但不是函数中的代码 是在程序从上到下被执行的过程中依次加载进内存的 放置了我们设置的所有变量名和函数名 3.局部命名空间   -----函数 就是函数内部定义的名字 当调用函数的时候,才会产生这个名称空间,随着函数执行的结束,这个命名空间就又消失了 三种命名空

学习13.内容# 1.内置函数二 # 2.闭包

目录 内置函数二 重要的内置函数和匿名函数 闭包 内置函数二 abs 绝对值 返回的都是正数 print([abd(i) for i in lst]) enumerate 枚举 ("可迭代对象","序号的起始值") 默认起始值是0 [(0,1),(1,2),(2,3)] print([i for i in enumerate(lst,10)]) lst = [11,22,33,-44,23,21] new_lst = [] for i in enumerate(ls

函数初识:定义,调用,返回值,参数

一 函数的定义,调用,返回值 1.函数的作用: 封装 减少重复代码 2.函数的书写格式 def 关键字 定义一个函数 def 函数名(): 缩进 函数体(代码块) def func(): print('我') print('爱') print('你') return '1314' #返回值,将内容返回给调用者 #不写return或写了return不写值返回None msg = func() #函数名() -- 调用 print(msg) return返回多个变量是,返回的是元祖形式,返回的内容不

python学习笔记(二) - 函数

一. 调用函数 python内置了一些数据类型转换函数,比如int()函数可以把其他数据类型转换为整形 >>> int('123') 123 >>> int(12.34) 12 >>> float('12.34') 12.34 >>> str(1.23) '1.23' >>> unicode(100) u'100' >>> bool(1) True >>> bool('') Fal

php深入学习笔记二( 函数内置函数 )

1. call_?user_?func_?array 调用用户自定义函数,第一个参数是函数名, 第二个参数是函数的参数 必须是是一索引数组 function foobar($arg, $arg2) { echo __FUNCTION__, " got $arg and $arg2\n"; } class foo { function bar($arg, $arg2) { echo __METHOD__, " got $arg and $arg2\n"; } } //

python学习【第四篇】python函数 (二)

一.装饰器 装饰器:本质就是函数,功能是为其它函数添加附加功能 装饰器的原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 装饰器的知识储备: 装饰器 = 高阶函数 + 函数嵌套 + 闭包 二.高阶函数 高阶函数的定义: 函数的接收参数是一个函数名 函数的返回值是一个函数名 满足上述条件任意一个都可以是高阶函数 import time def fun1(): time.sleep(0.5) print("hello") def computing_run_time(fun):

javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量

定义函数.调用函数.参数.返回值 关键字function定义函数,格式如下: function 函数名(){ 函数体 } 调用函数.参数.返回值的规则和c语言规则类似. 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta chaset="UTF-8"> 5 <title></title> 6 </head> 7 <body