actionscript 3 0從入門到精通第4章條件與循環(huán)_第1頁
actionscript 3 0從入門到精通第4章條件與循環(huán)_第2頁
actionscript 3 0從入門到精通第4章條件與循環(huán)_第3頁
actionscript 3 0從入門到精通第4章條件與循環(huán)_第4頁
actionscript 3 0從入門到精通第4章條件與循環(huán)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章條件與循環(huán)在ActionScript3.0中,條件句和循環(huán)句是兩種基本結(jié)構(gòu)。條件句為程序增加了邏輯萬分,而循環(huán)句則可以反復(fù)運行某個代碼段。通常任何一個ActionScript程序都會包含這兩種結(jié)構(gòu)。4.1條件句條件句又稱為判斷句。ActionScript會判斷條件是否滿足以確定相應(yīng)程序是否執(zhí)行。條件句使得程序在不同情況下可以有不同的執(zhí)行內(nèi)容和執(zhí)行順序。ActionScript中常見的條件句關(guān)鍵字包括if和switch。4.1.1if條件句if條件句首先測試條件是否成立,如成立則執(zhí)行大括號組中的代碼內(nèi)容,其語法結(jié)構(gòu)如下。條件操作數(shù)condition成立與否取決于其返回的布爾值,當返回值為true時,條件成立,運行大括號組中的代碼;當返回值為false時,條件不成立,大括號組中的代碼將被跳過。4.1.1if條件句以上代碼首先測試條件(1是否等于1),條件成立后,將輸出字符串“1當然等于1”。如將測試條件變?yōu)闇y試2是否等于1,則因為條件不成立,則不會執(zhí)行大括號內(nèi)的trace語句。//測試2是否等于14.1.1if條件句說明:條件操作數(shù)condition可以是值、變量或表達式。當它不是布爾數(shù)據(jù)類型的值時,ActionScript會執(zhí)行自動類型轉(zhuǎn)換,代碼如下。條件操作數(shù)的值為7和0時,結(jié)果完全不同。在判斷條件時ActionScript已經(jīng)執(zhí)行了自動轉(zhuǎn)換。自動轉(zhuǎn)換的相關(guān)規(guī)則可參考第三章。4.1.2if…else條件句if…else是一個非此即彼的分支結(jié)構(gòu)。其語法結(jié)構(gòu)如下。4.1.2if…else條件句在運行時,首先測試條件是否成立,如成立則執(zhí)行第一個大括號組中的代碼1部分,執(zhí)行后跳過else后大括號組中的代碼2部分;如條件不成立,則執(zhí)行第二個大括號組中的代碼2部分,如下列代碼。4.1.2if…else條件句注意:本例中使用了比較運算符來比較num與10的大小。當num大于10時,表達式返回true,執(zhí)行第一個大括號組中的代碼,輸出字符串“變量num大于10"”。當num等于或小于10時,條件不成立,輸出“變量num不大于10”。讀者可自行調(diào)整num的賦值,觀察結(jié)果。通過實踐可以觀察到,條件操作數(shù)condition接收所有布爾類型和可以自動轉(zhuǎn)換為布爾類型數(shù)據(jù)的值、變量或表達式。4.1.3if…elseif…else條件句if…elseif…else是一個多重分支結(jié)構(gòu)。其語法結(jié)構(gòu)如下。4.1.3if…elseif…else條件句在運行時,首先測試條件condition1是否成立,如成立則執(zhí)行第一個大括號組中的代碼1,執(zhí)行后跳過以后的內(nèi)容;當condition1不成立時,繼續(xù)測試條件condition2是否成立,如成立則執(zhí)行第二個大括號組中的代碼2,執(zhí)行后跳過以后的內(nèi)容;當以上條件都不成立時,執(zhí)行else后大括號組中的代碼3,如下列代碼。4.1.3if…elseif…else條件句注意:elseif…在多重分支中并非只能使用一次,而是可以重復(fù)若干次,代碼如下。上例中使用了2個elseif…,整個條件句出現(xiàn)了4個分支。4.1.4switch…case條件句switch…case條件句基本上用于多重分支結(jié)構(gòu),語法上有所差別,語法結(jié)構(gòu)如下。4.1.4switch…case條件句運行時,測試操作數(shù)operand是否與value1相匹配,如匹配則運行代碼一,并跳出整個結(jié)構(gòu)。當value1不匹配時,運行代碼二,之后跳出結(jié)構(gòu)。如果所有都不匹配,則運行default:后的代碼三,并結(jié)束整個條件判斷。以下使用在switch…case條件句改寫elseif…的示例,代碼如下。4.2循環(huán)句循環(huán)句用于反復(fù)執(zhí)行某一特定代碼塊。一般來說,循環(huán)句會設(shè)定一個循環(huán)條件,只要條件成立,將一直執(zhí)行一去。循環(huán)句常見的有五種形式,分別為:while、do…while、for、for…in和foreach…in。其中前3種語法雖然不同,但功能類似;后兩種用于訪問對象的動態(tài)屬性,往往也稱為“遍歷”。4.2.1while循環(huán)句while循環(huán)會設(shè)定一個條件,當條件滿足時即執(zhí)行循環(huán)體中的代碼。一般來說,while的條件需要隨著代碼的執(zhí)行而更新,如果條件沒有變化往往會形成死循環(huán)。while循環(huán)句的語法結(jié)構(gòu)如下。4.2.1while循環(huán)句ActionScript在執(zhí)行時會先驗證條件condition是否成立(是否為true),如成立則執(zhí)行大括號組中的代碼,如不成立,將跳過整個循環(huán)體,繼續(xù)執(zhí)行后面的代碼,如下列代碼。注意:以上代碼在執(zhí)行時,總會檢測條件(n是否小于5),滿足條件時在執(zhí)行循環(huán)體后總會轉(zhuǎn)回條件檢測這個環(huán)節(jié)。因此在循環(huán)體中更新n非常重要,如果沒有“n++;”這一句代碼,將造成死循環(huán)。4.2.2do…while循環(huán)句do…while也是一種while循環(huán),不過他在先后順序上,保證先執(zhí)行循環(huán)體,再檢測條件。因此do…while循環(huán)保證循環(huán)體至少被執(zhí)行一次。其語法結(jié)構(gòu)如下。4.2.2do…while循環(huán)句與while循環(huán)句對比,while循環(huán)句是先檢測條件,成立后執(zhí)行;而do…while則先開始執(zhí)行,后檢測條件。兩者均在條件不成立時跳出循環(huán)。上例中while部分所檢測的條件(n<0)從一開始便不滿足,但ActionScript還是會先執(zhí)行循環(huán)體中的代碼,之后再檢測條件是否成立。4.2.3for循環(huán)句for循環(huán)句是最常用的循環(huán)結(jié)構(gòu)之一。它將初始值,循環(huán)條件和對條件的必要更新集成在for語句中,不至于遺漏。其基本語法如下。4.2.3for循環(huán)句其中init為初始包含初始值的變量,condition為確定循環(huán)是否結(jié)束的條件語句,next則是一個每次都更新變量的表達式,如下列代碼。4.2.3for循環(huán)句與while循環(huán)對比可以發(fā)現(xiàn),while結(jié)構(gòu)中分別使用3句代碼才完成了for語句中的功能,且在結(jié)構(gòu)上松散,容易遺漏。4.2.4for…in循環(huán)句for…in循環(huán)主要用于在對象或數(shù)組中循環(huán)訪問屬性或數(shù)組對象。其語法結(jié)構(gòu)如下。在執(zhí)行時,變量i將用于代表對象object中的每一個屬性,直到“遍歷”對象的全部屬性之后,循環(huán)才會結(jié)束。4.2.4for…in循環(huán)句上例輸出結(jié)果為:companynameage。可以看到可以通過循環(huán)訪問預(yù)先定義的對象obj的每個屬性。其屬性值則可以使用obj[i]來獲得。上述代碼的輸出結(jié)果為:company:Adobename:張三age:254.2.5foreach…in循環(huán)句與for…in循環(huán)類似,foreach…in也是一種遍歷方式。不過for…in遍歷的是屬性,而foreach…in遍歷的是屬性值。例如,對象{x=4,y=5}包含2個屬性(x和y),for…in遍歷的結(jié)果是x和y(屬性名稱),而foreach…in遍歷的結(jié)果則是4和5(屬性的值)。foreach…in循環(huán)句的語法如下。4.2.5foreach…in循環(huán)句對比可以發(fā)現(xiàn),for…in循環(huán)中使用的變量i定義為字符串類型,這是因為屬性名稱肯定是字符

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論