我们为什么需要流程控制?众所周知,程序的执行都是一行接一行、自上而下地进行,不遗漏任何代码。如果所有的应用程序都这样执行,那我们能做的工作就很有限了。如果我们需要进行有条件的执行或是循环的执行相同的代码又该怎么办呢?显然自上而下地进行执行代码满足不了需求,我们需要一种新的“武器”,可以让代码有选择性的执行,那便是流程控制语句,如其他大多数编程语言一样,在ActionScript 3.0中的流程控制主要有两种方式:分支和循环。
一、分支语句
所谓“分支”,就是有条件地执行代码。条件取决于表达式的计算结果。
分支是控制下一步要执行哪些代码的过程。要跳转到哪行代码由某个条件控制语句来控制,这个条件语句使用布尔逻辑(boolean:true & falsh),对测试值和一个或多个可能的值进行比较。
在ActionScript 3.0中的分支语句主要有三种:三元运算符、if语句以及switch语句。下面逐个介绍这些分支语句。
1、三元运算符
要说进行比较,最简单的莫过于三元运算符。语法格式如下:
语法格式:<表达式>?<表达式成立的返回值>:<表达式不成立的返回值>,详细见下面程序示例:
2 var n:int = 2;
3
4 result = n > 0 ? "大于0 ":" 小于或等于0";
5
6 trace(result);
三元运算符比较适合简单的判断赋值运算,不适合于根据条件比较结果然后执行大量程序代码的情况,此时应该使用if语句。
注:上面程序中的trace()方法的作用,见文章末尾总结。
2、if语句
条件语句允许我们做出逻辑判断,满足条件应该做什么?不满足条件又应该做什么?if条件语句则是用得最多的一种,功能也比较多、比较强。与前面的三元运算符相比,不同的是if语句没有结果,if是为了有条件的执行其他语句。如下:
2 var b:String = txtB.text; //取出文本框txtB的值
3 if(a == b) {
4 Alert.show("两个数相等");
5 } else {
6 Alert.show("两个数不相等");
7 }
我相信看这样的文章的朋友都是有一定的编程基础的,所以文中示例程序我就不做过多的解释,可以说ActionScript3.0的if,switch语句的语法和C#/Java的语法是一样的。有if那肯定少不了与else的配合使用,如上面示例程序片段。
注:上面程序中的Alert.show()方法,见文章末尾总结。
OK,到这里我们已经学会了if--else的用法了,满足条件执行if后面的程序块,不满足条件则执行else后面的代码块,这是简单的条件判断。如果我们要使用if来判断更多的条件呢?此时我们可以使用if语句的另一种用法:if--else if---else if.
2 if(d == 0) {
3 Alert.show("你输入的数" + d + "等于0");
4 } else if(d > 0) {
5 Alert.show("你输入的数" + d + "大于0");
6 } else if(d < 0) {
7 Alert.show("你输入的数" + d + "小于0");
ActionScript 3.0下,if语句的使用和C#/Java几乎没有差别,这里我就不用过多介绍。 如大多数编程开发语言一样,针对多条件判断的分支处理ActionScript也提供了比较好的方案,既switch。
3、switch语句
switch语句非常类似于if语句,因为它也是根据条件来选择性的执行某段程序代码块。不同的是switch可以一次将测试值与多个值进行比较判断,而不是只测试一个判断条件,如同if--else if--else if语句一样。如下代码片段:
2 var result:String;
3
4 switch(number) {
5 case 1:result="星期一";break;
6 case 2:result="星期二";break;
7 case 3:result="星期三";break;
8 case 4:result="星期四";break;
9 case 5:result="星期五";break;
10 case 6:result="星期六";break;
11 case 7:result="星期日";break;
12 }
13
14 Alert.show(result);
关于ActionScript 3.0中的if、switch语句就介绍这些,详细请大家查阅相关资料和数据。
二、循环语句
所谓“循环”,就是重复的执行相同的语句。重复执行一定的次数,或者在不满足循环条件后自动终止循环。说到循环语句,我相信大家都对他是在熟悉不过了,无外乎就是do、while、for、foreach。在ActionScript 3.0中也是如此。
关于循环我也不想废话太多,其实只需要弄清不同循环之间的区别和特性就OK了。它们有的适合在循环次数确定的时候使用(如:for循环语句),有的则适合在循环次数不确定的时候使用(如:while语句),而有的无论如何也需要执行一次循环体(如:do--while循环语句)。如下代码片段:
2 var i:int = 10;
3 var sum:int = 0;
4 do {
5 sum += i;
6 i--;
7 } while(i!=0);
8 Alert.show(sum.toString());
9
10 //while循环语句
11 var i:int = 10;
12 var sum:int = 0;
13 while(i != 0) {
14 sum += i;
15 i--;
16 }
17 Alert.show(sum.toString());
18
19 //for循环语句
20 var sum:int = 0;
21 for (var i:int = 1; i <= 10; i++) {
22 sum += i;
23 }
24 Alert.show(sum.toString());
除了上面这几种循环语句的使用方式外,在ActionScript 3.0中对于for循环来说还有另外两种使用方式,他们分别是for--in和for each语句。使用都很简单,如下代码示例:
2 employee.Name="Beniao";
3 employee.Sex="男";
4 employee.Email="beniao123@163.com";
5 employee.Address="中国·重庆";
6
7 var temp:String = "";
8 for(var emp:String in employee) {
9 temp += employee[emp] + "\n";
10 }
11 Alert.show(temp);
下面是for each()循环语句的使用方式:
2 for each(var s:String in books) {
3 Alert.show(s);
4 }
在ActionScript 3.0中使用循环语句,用样可以使用continue,break来跳出循环,使用上和C#/Java是一样的,这里就不在多作介绍。
三、本文总结
通过阅读本文,能够掌握的ActionScript 3.0的知识点如下:
1、三元运算符:执行简单的判断运算
2、if语句:执行有条件选择性的判断运算
3、switch语句:执行有条件选择性的判断运算
4、for/for in/for each:执行循环处理
5、trace()方法:ActionScript 3.0所提供的方法,用语调试程序。类似于C#的Console.Write().
6、Alert.Show():ActionScript 3.0所提供的方法,功能就是实现弹出一个对话框。
四、推荐文章
1、Flash ActionScript流程控制语法详解
2、速战速决Flash ActionScript 3.0(1) - 数据类型、操作符和流程控制语句
本文示例代码下载
转自:http://www.cnblogs.com/beniao/archive/2008/12/22/1359231.html