《第五章循环程序结构.ppt》由会员分享,可在线阅读,更多相关《第五章循环程序结构.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章 循环程序结构 ActionScript语言中通过四种语句实现程序的循环,分别是while、do.while,for循环和for in循环语句。它们与if语句的最大区别在于,只要条件成立,循环里面的程序语句就会不断的执行。而if语句中的程序代码只可能被执行一次。5.1 while循环语句while语句的一般形式为:While(条件)语句1;语句2; 执行循环里面的语句之前,while先判断条件是否成立,如果条件成立,如果条件成立,则先从“”开始的程序模块执行,执行到模块的结尾“”时,会再次检查条件是否依旧成立,如此反复执行直到条件不成立为止。范例5-1:求1+2+3+100的和(1)新建
2、一个Flash文档。(2)选中第一帧,打开“动作”面板,输入下列代码: var i = 1;/变量i用来控制循环 var sum = 0; /sum表示求和的结果,初始值为0 while (i=100) /当变量i的值小于等于100时sum += i; /sum不断加上1i+; /i递加 trace(sum); /输出结果(3)测试影片 在上面的循环结构中,变量i的初始值为1,表达式i=100为真,变量sum加上1,然后i加上1等于2,再进行条件i=100判断,条件为真,这样循环执行,i一直自加到101,此时条件i=100为假,结束循环。这样程序共进行了100次循环。 在循环结构中,应有使循环
3、趋向于结束的语句。如在本例的代码中,用变量i来控制,如果没有i的递加,循环将永不结束,如果一个程序执行时间超过15秒,Flash会提示错误信息。在这段程序中,把i+写到循环条件的小括号中在Flash语句中是允许的,但是要注意循环的执行过程,如: var i = 1; var sum = 0; while (i+=100) sum += i; trace(sum); 这段程序和前面的程序结果不一样。 i+=100的意思是,首先进行i=100的判断,然后i加上1等于2,在执行sum+=2,首先从2开始计算,这是第一个问题所在。当i=100时,条件还为真,i自加后等于101,因为这时条件还为真,还要
4、执行sum+=101,这是第二个问题所在。这段程序实际是求2到101的和,少加了一个1,多加了一个101。 范例5-2:练习使用while语句,实现复制5个影片剪辑实例 打开源文件5-2.fla,在第一帧中加入如下代码:var i = 1;var num =5;while (i=num) duplicateMovieClip(ball, ball+i, i);thisball+i._x = ball._x+i*40;i+;这段代码的作用是复制5个影片剪辑实例,实例名分别为ball、ball2、.ball5,并且设置这些实例的x坐标,让他们横相等距排列。5.2 do.while循环语句do.wh
5、ile循环语句的一般形式为do语句1;语句2;while(条件);和while循环命令相反,do.while循环语句是一种先斩后奏的循环语句,不管怎样,do的语句至少会执行一次,然后再判断条件是否要继续执行循环。如果while()里面的条件成立,它会继续执行do里面的程序语句,直到条件不成立为止。5.3 for循环语句 for循环语句是功能最强大,使用最灵活的一种循环语句,它不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况。5.3.1 for循环语句的一般形式for循环语句的一般形式为for(初始表达式;条件表达式;递增表达式)程序For语句中有三个表达式
6、,中间用分号隔开。第一个初始表达式通常用来设定语句循环执行次数的变量初值,这个表达式只会执行一次; 第二个条件表达式通常是一个关系表达式或者逻辑表达式,用来判定循环是否继续,第三个递增表达式是每次执行完“循环体语句”以后,就会执行的语句,通常就是用来增加或者减少变量的初值。使用for语句计算1+2+.+100的循环程序如下:var sum=0for(i=1;i=100;i+=1)sum=sum+i;trace(sum)5.3.2使用for循环语句的注意事项 为了使程序的效率更高,在初始表达式中var关键字来声明变量,如:var sum=0for(var i=2;i100;i+=2)/这里用va
7、r关键字来声明变量isum=sum+i;trace(sum); 在初始表达式中可同时定义多个初始变量,两个表达式之间用逗号(,)隔开,如:for(var i=2,sum=0;i100;i+=2)sum=sum+i;trace(sum); 初始表达式也可以省略,但必须在for语句循环之前初始化变量,如:var i=2,sum=0;for(;i100;i+=2)sum=sum+i;trace(sum);当省略初始表达式时,其后的分号不能省略。 递增表达式也可以省略,但必须保证循环能正常结束,如:for(var i=2,sum=0;i100;)sum=sum+i;i+=2;trace(sum);程序
8、中的i+=2用来结束循环。 在for语句中,可以同时省略初始表达式和递增表达式,如:var i=2,sum=0;for(;i1) thisx+i = thisx+(i-1)+distance;thisy+i = thisy+(i-1);i-;/利用while循环,x6x5,x4x3.,y6=y5,y5=y4.x1 = text1._xy1 = text1._y;/不断获取第1个实例的的坐标while (i=6) thistext+i._x = thisx+i;thistext+i._y = thisy+i;i+;/利用while循环,分别设置字符的坐标,text6的坐标为(x6,y6).i-;/循环结束后i=7,所以减1 通过这段代码,不断获取第一个文字的坐标,即鼠标指针的坐标,通过这个坐标来设置其他文字的坐标。(7)单击as图层的第三帧,打开动作面板,输入下列代码:gotoAndPlay(“loop”);/跳到第二帧,不断循环测试影片。