AS3基础教程-第9课-for循环浅议
1、打开flashCS6,新建一个AS3.0的flash文档,按F9键之后,准备写代码
2、什么是循环:
循环就是反复的执行重复性的劳作。
举个例子:要计算1+2+3+4+5+.....+100的结果
如果将完整的算式写出来,非常的费事、费力。
要命的是,有的时候,算数的个数还不确定,或者算数的个数超级大(几千个)。
循环就是为了解决这种窘况而开设的。
3、for循环的书写格式:
for(A;B;C){
D
}
A是循环的初始值,B是循环满足的条件,C是递增或递减语句,D是循环体
特别强调:ABC之间用分号隔开!不是逗号!
当满足B的条件时,就执行一次D语句,然后执行C语句以更改变量的值;然后再判断是否满足B条件,如此重复下去,直到B条件不满足(不会执行D语句,也不会再执行C语句),就直接结束循环。
如果B条件无法实现不满足的状态,循环就会一直进行下去,这种现象叫做 死循环,是必须避免出现的情况。
4、例1,输出1到10共10个数字:
for(var i:uint=1;i<=10;i++){
trace(i)
}
非常的简单!对照着我给的公式:
A:var i:uint=1
B:i<=10
C:i++
D:trace(i)
A是规定一个初始值,这里定义了一个名为i的uint数字类型的变量,并设置初始值为1
B是需要满足的条件,这里规定的条件是i的值不超过10
C是递增或递减语句,这里是递增语句,每次循环时都让i的值+1
D是循环体,这里是输出i的值
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这里介绍一下其运作的过程:
首次进入本循环,设定一个i,并赋初始值为1
<1>第一次循环,i是1,满足B条件,所以执行D语句(在输出面板输出i的值1),然后,执行C语句(C执行后,i的值变为2)
<2>第二次循环,i是2,满足B条件,所以执行D语句(在输出面板输出i的值2),然后,执行C语句(C执行后,i的值变为3)
<3>第三次循环,i是3,满足B条件,所以执行D语句(在输出面板输出i的值3),然后,执行C语句(C执行后,i的值变为4)
........
<10>第十次循环,i是10,满足B条件,所以执行D语句(在输出面板输出i的值10),然后,执行C语句(C执行后,i的值变为11)
<11>第十一次循环,i是11,不满足B条件,直接退出整个循环!循环结束!相当于只循环了十次!
5、例2:计算1到100 共100个数字的和:
var sum:uint=0
for(var i:uint=1;i<=100;i++){
sum+=i
}
trace(sum)
输出结果是5050,非常的简洁、高效!这就是循环的魅力,可以将繁复的重复性劳作用超级简洁的代码呈现。
分析一下本例:
首先,定义一个sum变量,用于存储两个数字的和,其初始值为0,意思是没有相加。
然后,用for循环,循环100次!每一次执行的语句是让sum的值等于 sum+i
第一次循环后,sum的值为0+1,也就是1【i的值变为2】
第二次循环后,sum的值为1+2,也就是3【i的值变为3】
第三次循环后,sum的值为3+3,也就是6【i的值变为4】
第四次循环后,sum的值为6+4,也就是10【i的值变为5】
第五次循环后,sum的值为10+5,也就是15【i的值变为6】
以此类推,每一次循环都是将上一次循环结束后的sum的值+上一次结束后i的值
需要注意一个细节:本例和上例有一点不同,上例中的trace语句在循环体内,所以测试影片后,会看到多个输出的结果。而本例中的trace在循环体外,所以只有一个输出的结果。请仔细对比两例的细节差异。
6、例3:计算数字10的阶乘
自然数n(不含数字0)的阶乘的计算方法:
n=(n-1)(n-2)(n-3).....1
看下图,是使用系统自带的计算器运算的结果。阶乘的符号是叹号,10的阶乘的计算方法是:
10!=10×9×8×7×6×5×4×3×2×1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AS3代码如下:
var jc:uint=1
for(var i:uint=1;i<=10;i++){
jc*=i
}
trace(jc)
输出结果与计算器的一样。请大家自行分析本例的运算过程,认真体会for循环的强悍与逆天

7、补充说明:
for循环还有其它两种形式:
for in 和 for each in
由于牵扯到的数据类型我还未介绍,故此在这里不予说明。