ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else switch while for
?????我們為什么需要流程控制?眾所周知,程序的執行都是一行接一行、自上而下地進行,不遺漏任何代碼。如果所有的應用程序都這樣執行,那我們能做的工作就很有限了。如果我們需要進行有條件的執行或是循環的執行相同的代碼又該怎么辦呢?顯然自上而下地進行執行代碼滿足不了需求,我們需要一種新的“武器”,可以讓代碼有選擇性的執行,那便是流程控制語句,如其他大多數編程語言一樣,在ActionScript 3.0中的流程控制主要有兩種方式:分支和循環。
一、分支語句
?????所謂“分支”,就是有條件地執行代碼。條件取決于表達式的計算結果。
?????分支是控制下一步要執行哪些代碼的過程。要跳轉到哪行代碼由某個條件控制語句來控制,這個條件語句使用布爾邏輯(boolean:true & falsh),對測試值和一個或多個可能的值進行比較。
?????在ActionScript 3.0中的分支語句主要有三種:三元運算符、if語句以及switch語句。下面逐個介紹這些分支語句。
?????1、三元運算符
??????????要說進行比較,最簡單的莫過于三元運算符。語法格式如下:
?????語法格式:<表達式>?<表達式成立的返回值>:<表達式不成立的返回值>,詳細見下面程序示例:
1??? var?result:String;?? //定義一個字符串變量(變量定義詳細見上一篇文章)2??? var?n:int?=?2;
3?????????????????
4??? result?=?n?>?0???"大于0?":"?小于或等于0";
5?????????????????
6??? trace(result);
?????三元運算符比較適合簡單的判斷賦值運算,不適合于根據條件比較結果然后執行大量程序代碼的情況,此時應該使用if語句。
??????注:上面程序中的trace()方法的作用,見文章末尾總結。
?????2、if語句
??????條件語句允許我們做出邏輯判斷,滿足條件應該做什么?不滿足條件又應該做什么?if條件語句則是用得最多的一種,功能也比較多、比較強。與前面的三元運算符相比,不同的是if語句沒有結果,if是為了有條件的執行其他語句。如下:
1???? var?a:String?=?txtA.text;??//取出文本框txtA的值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.
1???? var?d:int?=?int(txtNumber.text);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語句一樣。如下代碼片段:
?1??????var?number:int?=?int(txtE.text);?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循環語句)。如下代碼片段:
?1?????//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語句。使用都很簡單,如下代碼示例:
?1?????var?employee:Object?=?new?Object();?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()循環語句的使用方式:
1?????var?books:Array?=?new?Array("IBM",?"APPLE",?"SUN","ADOBE");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
轉載于:https://www.cnblogs.com/qiantuwuliang/archive/2010/04/06/1705197.html
總結
以上是生活随笔為你收集整理的ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else switch while for的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDBC+Servlet+JSP整合开发
- 下一篇: C#操作Excel(搜集)