循环结构 - ActionScript 动作脚本一点通-第6课
本节课时长10分20秒,下载文件5.41兆字节。下载后用浏览器打开HTML文档可以观看讲解。
上节课中,我们提到,基本的程序流程控制,一共包括三种基本结构,今天介绍第三种——“循环结构”。
循环分为两种。一种是每隔一段时间执行一次,这种循环叫“等时循环”,例如每隔一秒钟就打印一个数字,或者每隔10个帧就检查一次数据,这是利用Flash的时间轴来实现的;另一种是在同一个帧中执行的循环,这种循环叫做“同帧循环”,例如在某一帧中,要计算从1+2+3+……+100的值,那么就要求在进入下一帧之前计算完毕。需要注意的是。这两种循环方式是完全不同的,完成的功能也是不同的。
本节先学习同帧循环。
首先来了解一下while循环,“while”循环的使用格式为:
while (条件) {
执行语句();
}
其中“条件”是循环的条件,如果条件成立,则在循环返回以再次计算条件之前执行一条语句或一系列语句。如果条件不成立,那么跳过该语句或语句系列并结束循环。
下面看一个实例:计算“1 + 2 + 3 + …… + 100”的值。先分析操作思路如下:
(1)按照四则运算的规则,就是先计算1+2的和,再加上3得到1+2+3的和,再加上4得到1+2+3+4的和……这样处理到100,就完成了整个叠加过程。
(2)为了得到各次累加的和,就需要一个变量Total,它开始是0,第一次将它加上1,第二次将它加上2,第三次将它加上3……这样处理100次,就得到了从1累加到100的结果。
(3)为了得到每次的加数,还需要一个变量n,它开始是1,第二次变成2,第三次变成3……每次增加1,一直到100为止。
有了上面的分析,就可以开始编程了。创建一个Flash文档,单击选择第1帧,按“F9”键打开“动作”面板,在脚本窗口中键入以下代码:
var Total:Number = 0; // 1
var n:Number = 1; // 2
while (n <= 100) { // 3
Total += n;
n++;
}
trace("Total = " + Total); // 4
其中带有注释序号的语句解析如下:
注释语句1:创建变量Total,用于记录叠加的和。将它的初始值设置为0。
注释语句2:创建变量n,用于记录每次的加数。将它的初始值设置为1。
注释语句3:在n小于或者等于100的情况下进行循环。在每次循环中,将n的值叠加到Total,然后n自身增加1。
注释语句4:计算完毕,打印Total的值。
理解了“while”循环之后,再来看看“do-while”循环,“do-while”循环的使用格式为:
do {
执行语句();
} while (条件)
与 while 循环类似,不同之处是在对条件进行初始计算前执行一次语句。随后,仅当条件计算结果是 true 时执行语句。“do…while”循环确保循环内的代码至少执行一次。尽管这也可以用 while 循环通过在 while 循环开始前放一段要执行的语句副本来实现,但有些程序员认为“do…while”循环更易于阅读。
除了上面两种循环结构,还有一种非常常用的“for”循环,使用“for”循环可以在一开头就明确指定循环前的数据状态、循环条件和下一步处理的内容,从而让循环过程变得严整。使用格式为:
for(初值; 循环条件; 下一步处理) {
执行语句();
}
其中“初值”是在开始循环序列前要计算的表达式,通常为赋值表达式。循环序列会计算“循环条件”表达式。如果循环条件成立,那么就执行“执行语句”的内容,然后进行“下一步处理”的内容。
下面仍然以上面的加法为例,计算“1 + 2 + 3 + …… + 100”的值。
var Total:Number = 0;
var n:Number;
for (n = 1; n <= 300; n++) {
Total += n;
}
trace("Total = " + Total);
其他一些更为深入的内容,请大家观看视频演示中的讲解。
9,816




Wow! This blog looks just like my old one! It鈥檚 on a totally different subject but it has pretty much the same page layout and design. Great choice of colors!
I鈥檝e bookmarked, Dugg, and I joined the RSS subscription. Thanks!
感谢分享,我已下载了许多,比我原先的老师教的要好多了,通俗易懂。
老师,刚我看了前面的输入文本嘛,不过输出的结果怎么跟视频上显示的不一样啊?
老师您好:
我一下子把这八课全听完了,真的很清晰,讲得很好!由于刚学过一个学期的C语言,感觉它们很相似,我想问一下,有关电脑语言是不是很多都很相似,由于刚接触不是很了解,麻烦老师了,嘿嘿~
Candy ,
是啊,高级语言都有很多共性,关键在于深入理解,加油!
下了很多`
非常感谢`