Flash的流程控制与循环控制语句
“aryley”通过精心收集,向本站投稿了8篇Flash的流程控制与循环控制语句,下面是小编帮大家整理后的Flash的流程控制与循环控制语句,希望对大家的学习与工作有所帮助。
篇1:Flash的流程控制与循环控制语句
控制|循环|语句
众所周知,flash中动画依靠的是时间轴,在没有脚本的情况下,动画会依照时间轴从第一帧不停的播放到最后一帧,然后始重复播放或者干脆停止,Flash的流程控制与循环控制语句
。为了能更好的控制动画,就必须使用脚本语句。而要想使动画具有逻辑判断的功能,就要使用流程控制和循环控制语句了!下面通过几个简单的小例子来学习流程与循环控制语句。一、流程控制语句
所谓流程控制,无非就是我们想控制动画程序的执行顺序而已。我们可以让flash根据一些特定的条件,来决定要执行哪个程序。这样就好象给了程序一些判断的机制。
if...else控制语句
根据英文的意思,大家可以简单的理解上面的控制语句:如果...就...否则...就... 下面来看看这个流程控制语句的书写格式。
if(条件){
//条件成立的话,就执行这里的程序。
}else{
//条件不成立的话就执行这里的程序。
}
下面重点说一下if后面括号内的条件。这个条件可以是一个固定的值,也可以是一个变量或表达式。如果条件成立的话,也就是条件为真(true),就会执行if后面的程序,如果条件不成立,也就是条件为假(false),就会执行else里的程序。例如:有这么一个条件,A>B 将这个表达式代入if后面的括号内,这个流程语句的意思就变成:如果A>B的话,就执行第一个大括号内的程序,如果A不大于B,就将执行else后面大括号内的程序。
实例讲解:
1、新建一个flash文档,在舞台上绘制一个圆,选中圆并按F8转换成影片剪辑,起名为:圆 这样就在舞台上创建一个圆的实例。
2、选中舞台上的实例,按F9打开动作面板,输入如下脚本:
onClipEvent (enterFrame) {
if (this._x<400) {//流程条件控制语句,如果这个圆的实例的X轴坐标小于400,就执行后面的程序。
this._x += 5;//让这个圆的坐标向右移动5个象素
} else {
this._x = 0;//控制语句,如果刚才的条件不成立。也就是圆实例的X坐标不小于400,就让它的X坐标为0
}
}
脚本最终编写效果如图:
最终效果演示:(下载源文件点击这里)
上面的脚本是一个非常简单的流程控制语句,根据实例的坐标来进行判断。因为我们使用了enterFrame事件,所以flash会不停的执行下面if...else语句。
3、测试影片。会看到圆不停的向右移动,当它的X坐标大于或等于400的时候,程序会把它的X坐标重新更改为0。
二、循环控制语句
所谓的循环语句,其实也是用条件来控制的,只要条件成立,那么,程序就会不停的执行下去,一直执行到条件不成立为止!常用的循环语句包括while循环、for循环等。因为篇幅有限,下面只重点讲解for循环的使用方法。
FOR循环命令格式:
for(初始变量;条件语句;迭加命令语句){
//用户自己编写的脚本,
}
首先强调一点,for语句的括号内有三个项目,必须要用分号间隔开!
初始变量:循环语句也是用条件是否成立来控制的,通常我们用一个变量来控制程序执行的次数。那么,这个初始变量就要先定义一个值。要注意的是,初始变量这个项目只执行一次!
条件语句:这个项目就是我们的判断语句了。如果这个项目判断为真(true),也就是条件成立了。它就直接跳进大括号{}内执行里面的程序!反之,如果条件为假(false),它就直接跳出这个for语句了。
迭加命令语句:接上面的条件语句,如果条件语句成立,会执行{}内的程序,那么执行完程序之后,就要回来执行迭加命令语句了。通常它就用来增加或减少刚开始时的初始变量的值。
实例讲解:
1、新建一个flash文档,在舞台上绘制一个圆,选中圆并按F8转换成影片剪辑,起名为:圆 这样就在舞台上创建一个圆的实例。
2、为这个实例起名为:yuan 如图:
3、添加一个新的层,并选中新层的第一帧,按F9打开动作面板,输入如下脚本:
for (i=1; i<5; i++) { //我们定义一个变量i来控制程序的循环次数。条件语句为判断i是否小于5,迭加命令就让每次程序执行之后,让i自己增加一,使程序循环4次!
duplicateMovieClip(“yuan”, “yuan”+i, i);//duplicateMovieClip是复制命令,用来复制舞台上名字叫yuan的实例,每次复制出来一个,就把新复制出来的实例改名为“yuan”+i。影片的深度也改为i
_root[“yuan”+i]._x = random(400);
_root[“yuan”+i]._y = random(300);//设置每次复制出来的新实例的X、Y坐标,具体数值随机产生。
_root[“yuan”+i]._alpha = random(100);//设置每次复制出来的新实例的透明度,具体数值从100里随机产生。
}
如果大家实在觉得for语言很难读懂的话,你可以按照for语言执行的顺序把i=1代入程序走一遍,可以帮助你理解程序。例如:当i等于1的时候,程序开始判断它是否小于5,那么1肯定小于5了,条件为真,就执行{}内的复制程序,同时复制出来的新实例的名字就变成了yuan1 ,接着就是设置yuan1的坐标和透明度。之后,for语句开始回去执行i++,此时,i的值就变为2了。然后又开始循环判断执行下去......(你可以算一下,这个for循环总共循环了几次呢?答案是4次。)
脚本如图:
4、选中时间轴的第6帧,按F6插入一关键帧,打开动作面板输入以下脚本:
gotoAndPlay(1);
让flash播放到第6帧的时候返回第1帧再来执行for循环语句。
如图:
5、测试效果吧,你会看到舞台上会循环4次复制出4个圆。
最终效果演示:(下载源文件点击这里)
希望大家能通过这两个简单的例子掌握流程控制语句和循环控制语句
篇2:七、 循环语句和循环控制
Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句,
一、循环语句
(一)、for循环 它的一般形式为:
for(<初始化>;<条件表过式>;<增量>)增量>条件表过式>初始化>
语句;
初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。
例如:
for(i=1;i<=10;i++)
语句;
上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。
注意:
(1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。
(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
(3).for循环可以有多层嵌套。
例如:
for(;;) 语句;
for(i=1;;i+=2) 语句;
for(j=5;;) 语句;
这些for循环语句都是正确的。
main
{
int i,j;
printf(i jn);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf(%d %dn,i,j);
}
输出结果为:
i j
0 0
0 1
0 2
1 0
1 1
1 2
用for循环求1+2+……+100的和:
main()
{
int sn=0,i;
for(i=1;i<=100;i++)
sn+=i; /*1+2+……+100*/
printf(%dn,sn);
}
从程序可以看出,使用循环语句可以大大简化代码。
(二)、while循环 它的一般形式为:
while(条件)
语句;
while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。
例如:
#include stdio.h
main()
{
char c;
c=' '; /*初始化c*/
while(c!='n') /*回车结束循环*/
c=getche(); /*带回显的从键盘接收字符*/
}
上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='n',条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。
注意:
(1).在while循环体内也允许空语句。
例如:
while((c=getche())!='n');
这个循环直到键入回车为止。
(2).可以有多层循环嵌套。
(3).语句可以是语句体, 此时必须用{和}括起来。
用while循环求1+2+……+100的和:
main()
{
int sn=0,i=0;
while(++i<=100)
sn+=i; /*求1+2+……+100*/
printf(%dn,sn);
}
(三)、do--while循环 它的一般格式为:
do
{
语句块;
}
while(条件);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环,
因此,do-while循环至少要执行一次循环语句。
同样当有许多语句参加循环时,要用{和}把它们括起来。
用do--while循环求1+2+……+100的和:
main()
{
int sn=0,i=1;
do
sn+=i; /*求1+2+……+100*/
while(++i<=100);
printf(%dn,sn);
}
从上面三个程序看出,使用for,while和do--while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。
二、循环控制
(一)、break语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
例如:
main()
{
int sn=0,i;
for(i=1;i<=100;i++)
{
if(i==51) break; /*如果i等于51,则跳出循环*/
sn+=i; /*1+2+……+50*/
}
printf(%dn,sn);
}
可以看出,最终的结果是1+2+……+50。因为在i等于51的时候,就跳出循环了。自己写写怎样在while和do--while循环中增加break语句。
注意:
1. break语句对if-else的条件语句不起作用。
2. 在多层循环中,一个break语句只向外跳一层。
例如:
main()
{
int i,j;
printf(i jn);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(j==2) break;
printf(%d %dn,i,j);
}
}
输出结果为:
i j
0 0
0 1
1 0
1 1
当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。
(二)、continue语句
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。
例如:
main()
{
int sn=0,i;
for(i=1;i<=100;i++)
{
if(i==51) continue; /*如果i等于51,则结束本次循环*/
sn+=i; /*1+2+……+50+52+……+100*/
}
printf(%dn,sn);
}
从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。
篇3:PL/SQL流程控制语句
,
跟在IN REVERSE 后面的数字必须是从小到大的顺序,而且必须是整数,不能是变量或表达式。可以使用EXIT退出循环。
例:使用循环语句打印 1 - 100.(三种方式)
1). LOOP ... EXIT WHEN ... END LOOP
declare--初始化条件v_i number(3) := 1;beginloop--循环体dbms_output.put_line(v_i);--循环条件exit when v_i = 100;--迭代条件v_i := v_i + 1;end loop;end;
2). WHILE ... LOOP ... END LOOP
declare--初始化条件v_i number(3) := 1;begin--循环条件while v_i <= 100 loop--循环体dbms_output.put_line(v_i);--迭代条件v_i := v_i + 1;end loop;end;
3).
beginfor i in 1 .. 100 loopdbms_output.put_line(i);end loop;end;
例: 综合使用 if, while 语句, 打印 1 - 100 之间的所有素数
(素数: 有且仅用两个正约数的整数, 2, 3, 5, 7, 11, 13, ...).
declarev_i int := 2;v_j int := 2;v_flag boolean := false;beginwhile v_i < 100 loopv_j := 2;while v_j ④标号和GOTO PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。语法如下: GOTO label; . . . . . . < 例:打印1——100的自然数,当打印到50时,跳出循环,输出“打印结束” (方法一) beginfor i in 1..100 loopdbms_output.put_line(i);if(i = 50) thengoto label;end if;end loop;<






文档为doc格式