您当前位置: 首页 >  WEB技术 >  AS3.0循环
2013/1/3 13:13:37 分类:WEB技术

AS3.0循环

循环语句允许您使用一系列值或变量来反复执行一个特定的代码块。Adobe 建议您始终用大括号 (
{}
) 来括起代码块。尽管您可以在代码块中只包含一条语句时省略大括号,但是就像在介绍条件语言时所提到的那样,不建议您这样做,原因也相同:因为这会增加无意中将以后添加的语句从代码块中排除的可能性。如果您以后添加一条语句,并希望将它包括在代码块中,但是忘了加必要的大括号,则该语句将不会在循环过程中执行。

 
 


for
循环用于循环访问某个变量以获得特定范围的值。必须在 
for
语句中提供 3 个表达式:一个设置了初始值的变量,一个用于确定循环何时结束的条件语句,以及一个在每次循环中都更改变量值的表达式。例如,下面的代码循环 5 次。变量 
i
的值从 0 开始到 4 结束,输出结果是从 0 到 4 的 5 个数字,每个数字各占 1 行。


 

var i:int; for (i = 0; i < 5; i++) { trace(i); }


 

for..in
 


for..in
循环用于循环访问对象属性或数组元素。例如,可以使用 
for..in
循环来循环访问通用对象的属性(不按任何特定的顺序来保存对象的属性,因此属性可能以看似随机的顺序出现):


 

var myObj:Object = {x:20, y:30}; for (var i:String in myObj) { trace(i + ": " + myObj[i]); } // 输出: // x: 20 // y: 30


 

还可以循环访问数组中的元素:


 

var myArray:Array = ["one", "two", "three"]; for (var i:String in myArray) { trace(myArray[i]); } // 输出: // one // two // three


 

如果对象是自定义类的一个实例,则除非该类是动态类,否则将无法循环访问该对象的属性。即便对于动态类的实例,也只能循环访问动态添加的属性。


 

for each..in
 


for each..in
循环用于循环访问集合中的项目,它可以是 XML 或 XMLList 对象中的标签、对象属性保存的值或数组元素。例如,如下面所摘录的代码所示,您可以使用 
for each..in
循环来循环访问通用对象的属性,但是与 
for..in
循环不同的是,
for each..in
循环中的迭代变量包含属性所保存的值,而不包含属性的名称:


 

var myObj:Object = {x:20, y:30}; for each (var num in myObj) { trace(num); } // 输出: // 20 // 30


 

您可以循环访问 XML 或 XMLList 对象,如下面的示例所示:


 

var myXML:XML = <users> <fname>Jane</fname> <fname>Susan</fname> <fname>John</fname> </users>; for each (var item in myXML.fname) { trace(item); } /* 输出 Jane Susan John */


 

还可以循环访问数组中的元素,如下面的示例所示:


 

var myArray:Array = ["one", "two", "three"]; for each (var item in myArray) { trace(item); } // 输出: // one // two // three


 

如果对象是密封类的实例,则您将无法循环访问该对象的属性。即使对于动态类的实例,也无法循环访问任何固定属性(即,作为类定义的一部分定义的属性)。


 

while
 


while
循环与 
if
语句相似,只要条件为 
true
,就会反复执行。例如,下面的代码与 
for
循环示例生成的输出结果相同:


 

var i:int = 0; while (i < 5) { trace(i); i++; }


 

使用 
while
循环(而非 
for
循环)的一个缺点是,编写的 
while
循环中更容易出现无限循环。如果省略了用来递增计数器变量的表达式,则 
for
循环示例代码将无法编译,而 
while
循环示例代码仍然能够编译。若没有用来递增 
i
的表达式,循环将成为无限循环。


 

do..while
 


do..while
循环是一种 
while
循环,它保证至少执行一次代码块,这是因为在执行代码块后才会检查条件。下面的代码显示了 
do...while
循环的一个简单示例,即使条件不满足,该示例也会生成输出结果:


 

var i:int = 5; do { trace(i); i++; } while (i < 5); // 输出:5

本文由胡金金个人网站整理发布,转载请注明地址:http://www.hujinjin.com/info/110.html

凡标明来源于胡金金个人网站的文章,皆为本站整理发布,若转载此文必须附原文链接,对部分平台更改其文内容当自己原创者,胡金金个人网站将保留其追究权利!
个人资讯推荐
友情链接