ASPVBScript的流程控制课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ASPVBScript的流程控制课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASPVBScript 流程 控制 课件
- 资源描述:
-
1、第四章 ASP/VBScript的流程控制任何一種程式語言都必須具有流程控制能力,否則無法提供能夠產生變化的執行結果。流程控制是由決策與跳躍組成,而決策與跳躍也可以合成迴圈。在一般的結構化程式語言中,都不允許使用者自行定義跳躍,而把跳躍移到決策與迴圈之內。因此,在本章中,我們將介紹ASP/VBScript的選擇結構與迴圈結構的相關敘述。透過這兩種結構,將能夠讓您的程式產生更多樣的變化。1第四章 ASP/VBScript的流程控制 VB的決策敘述,稱之為選擇結構,選擇結構可以讓程式設計師依據不同狀況,選擇不同的對應策略,在日常生活中,這種選擇性策略時常發生,例如:今天下雨,則開車上班,若沒下雨,
2、則騎機車上班。2大綱4.1結構化程式語言與程式設計 4.1.1循序結構 4.1.2選擇結構 4.1.3重覆結構4.2ASP/VBScript的選擇敘述 4.2.1單一選擇敘述(If Then 敘述)4.2.2雙向選擇敘述(If Then Else 敘述)4.2.3巢狀式選擇敘述 4.2.4多向選擇敘述(Select Case 敘述)4.3ASP/VBScript的迴圈敘述 4.3.1計數迴圈(ForStepNext迴圈敘述)4.3.2條件式迴圈 4.3.3條件式迴圈範例 4.3.4巢狀式迴圈4.4本章回顧34.1 結構化程式語言與程式設計在程式語言的發展歷史中,出現了一種稱之為結構化的程式語言
3、,結構化程式語言最大的特色之一即為不允許使用無條件式跳躍指令(Goto)。除此之外,更詳細地來說,一個程式語言足以稱為結構化程式語言,必須具有下列特性:1.只允許使用三種基本的邏輯結構:循序、選擇和重覆。(不允許或不建議使用Goto)2.使用由上而下(Top-down)的程式設計技巧。3.具模組獨立性。上述三項特性,我們將在本書中陸續介紹。而在本節中,我們將首先簡介結構化程式設計的三項基本邏輯結構:循序、選擇和重覆。【Goto敘述】:Goto是早期BASIC語言常用的一種敘述,其功能為無條件跳躍至指定的行號執行程式(早期BASIC語言需使用行號來編寫程式)。由於無條件跳躍指令將導致程式難以維護
4、與修改,因此,在結構化程式設計中,大多不允許或強烈不建議使用該類指令。44.1.1循序結構循序結構非常直覺而簡單,也就是程式碼被執行的順序為由上而下,一個敘述接著一個敘述依序執行。結構:範例:54.1.2選擇結構選擇結構則是代表程式在執行時,會依據條件(運算式的結果)適當地改變程式執行的順序。當滿足條件時,會執行某一敘述區塊(通常是接續的敘述區塊),若條件不滿足時,則執行另一敘述區塊。一般來說,選擇結構可以分為三種:單一選擇、雙向選擇、多向選擇。單一選擇結構:單一選擇結構只能註明條件成立時,要執行的敘述區塊。當條件不成立時將不會執行該區塊內的敘述,並且也不會執行任何敘述而逕自前往執行選擇結構之
5、後的敘述。而當條件成立時,會先執行區塊內的敘述然後才前往執行選擇結構之後的敘述。單一選擇結構:範例:64.1.2選擇結構 雙向選擇結構:雙向選擇結構則能夠指定條件成立時要執行的敘述區塊,也能指定條件不成立時要執行的敘述區塊。敘述區塊執行完畢將會繼續執行選擇結構之後的敘述。雙向選擇結構:範例:74.1.2選擇結構多向選擇結構:多向選擇結構可以設定條件值為各類狀況時要執行的敘述區塊,甚至還可以指定不符合所列之各類狀況時要執行的區塊。敘述區塊執行完畢將會繼續執行選擇結構之後的敘述。多向選擇結構:84.1.2選擇結構 範例:94.1.3重覆結構使用重覆結構時,電腦會重複執行某一段敘述區塊,直到某個條件
6、成立或不成立時,重覆動作才會停止。通常我們將重覆結構稱之為迴圈(loop),一般來說,重覆結構可以分為:前測式與後測式兩種。前測式重覆結構:先測試條件,若條件為真,才執行敘述區塊(即迴圈內敘述),當敘述區塊執行完畢後,會再回到測試條件處重新測試條件,若條件仍舊成立,則再一次執行敘述區塊。如此反覆測試、執行敘述區塊。直到條件不成立時才會離開迴圈。因此,在執行敘述區塊時,應該要有改變測試值的機會,否則將造成無窮迴圈(迴圈永不停止)。前測式重覆結構:範例:104.1.3重覆結構後測式重覆結構:先執行迴圈內的敘述區塊一次,然後再測試條件,若條件為真,則重覆執行迴圈內敘述區塊,當敘述區塊執行完畢後,重回
7、到測試條件處重新測試條件,若條件仍舊成立,則再一次執行敘述區塊。如此反覆執行敘述區塊、測試。直到條件不成立時才會離開迴圈。因此,迴圈內的敘述區塊至少會被執行一次。至於實際被執行多少次,則必須視條件值而定。後測式重覆結構:範例:114.2 ASP/VBScript的選擇敘述 ASP/VBScript提供的選擇敘述包含無條件選擇敘述及條件選擇敘述。其中,條件選擇又分為單一選擇、雙向選擇、多向選擇,整體分類如圖4-1所示。其中無條件選擇敘述Goto在前面已經提及過了,事實上Goto並不具備選擇特性,只具有跳躍功能,並且由於不符合結構化程式設計的特性,因此強烈不建議使用。圖4-1 VBScript的選
8、擇敘述分類124.2.1單一選擇敘述(If Then 敘述)IfThen敘述很簡單,就是當某個條件運算式(或稱判斷式)成立時,就去做某件事(或做某些事),當條件運算式不成立時,就不會做這些事,下面是一個生活實例。在VBScript中,撰寫上述的實例程式也是同樣的道理,只不過將下雨使用條件運算式來表達。把打傘也用程式敘述來表達。例如:If A1 Then B=100,就是當A1時,將B的變數值指定為100。如果要做的事不只一件的時候,我們又該如何撰寫呢?以下是一個生活實例。If 下雨 Then 打傘If 感冒了 Then 多喝水 多休息End If134.2.1單一選擇敘述(If Then 敘述
9、)同樣地,上述範例也符合VBScript的語法,從Then到End If之內所有事情就是當If之後的條件運算式邏輯成立時所要做的事情,以下是IfThen敘述的兩個完整語法。IfThen語法一:IfThen語法二:【範例4-1】:依據字串內容為條件,決定輸出你或妳做為問候語尊稱。範例4-1:ch4_01.asp(檔案位於隨書光碟 ch04ch4_01.asp)。If 判斷式 Then 要執行的單一敘述If 判斷式 Then 敘述區塊 End If14154.2.1單一選擇敘述(If Then 敘述)範例說明:第15行:根據字串變數strSex的內容是否為女,做為是否更改strBye2字串內容的條
10、件(=也可以作為字串比較之用)。若strSex為字串女,則strBye2字串更改為妳,因此第16行的strBye為謝謝妳的使用,否則strBye的內容為謝謝你的使用。(由於我們尚未介紹如何取得使用者的輸入,因此如果讀者想要修改條件值,請暫時直接在第14行修改strSex的變數值)執行結果:164.2.1單一選擇敘述(If Then 敘述)【範例4-2】:根據購買入場卷的數量是否大於10,決定是否打折優待。範例4-2:ch4_02.asp(檔案位於隨書光碟 ch04ch4_02.asp)。174.2.1單一選擇敘述(If Then 敘述)184.2.1單一選擇敘述(If Then 敘述)範例說明
11、:第1720行:根據intQty內容是否為=10,做為是否打95折的依據。若intQty=10,則打95折(第18行)並且輸出打折訊息(第19行)。(請將第12行修改為intQty=8再重新執行一次,將有不同的結果)執行結果:194.2.2雙向選擇敘述(If Then Else 敘述)使用IfThen敘述無法在條件運算式不成立時,指定要執行的動作。而IfThenElse可以在判斷式不成立的狀況下,執行某些指定的程式碼,其語法如下。IfThenElse語法:IfThenElse流程圖If 條件運算式 Then .條件成立時要執行的敘述區塊A .Else .條件不成立時所執行的敘述區塊B .End
12、 If204.2.2雙向選擇敘述(If Then Else 敘述)【範例4-3】:根據購買入場卷的數量是否大於10,決定是否打折優待。範例4-3:ch4_03.asp(檔案位於隨書光碟 ch04ch4_03.asp)。214.2.2雙向選擇敘述(If Then Else 敘述)224.2.2雙向選擇敘述(If Then Else 敘述)範例說明:(1)第1622行:IfThenElse敘述。(2)第1718行:當條件(intQty=10)成立時被執行,將總價打折並顯示打折訊息。(3)第2021行:當條件(intQty=10)不成立時被執行,總價不打折並顯示不打折訊息。(4)請將第12行修改為i
13、ntQty=12再重新執行一次,將有不同的結果。執行結果:234.2.3巢狀式選擇敘述由於選擇敘述的敘述區塊中可以包含任何敘述,因此,我們可以在該區塊中再放入另一個選擇敘述,如此一來就形成了所謂的兩層式巢狀式選擇。並且我們還可以利用此一技巧製作更多層的巢狀式選擇。巢狀式選擇敘述一般用在兩個以上的選擇條件時,當然我們也可以使用複雜一點的運算式來表達兩個以上的條件,不過使用巢狀式選擇有時卻比複雜運算式來得容易理解程式的流程依據。巢狀式選擇敘述並未規定內外層的選擇敘述必須使用哪一種,舉例來說,我們可以把內層的選擇式敘述放在單一選擇(IfThen)的Then敘述區塊,也可以放在雙向選擇(IfThenE
14、lse)的Then敘述區塊或Else敘述區塊中。以下是一個巢狀式選擇的格式範例:244.2.3巢狀式選擇敘述上述巢狀式選擇敘述所對應的流程圖如下:254.2.3巢狀式選擇敘述【範例4-4】:根據輸入的繳款記錄及持卡年份,評斷預借現金額度。其公式如下:繳款記錄:不正常 =無法預借現金 繳款記錄:正常 持卡未滿半年 =無法預借現金 持卡滿半年未滿1年 =預借現金額度為信用額度之一半 持卡滿1年 =預借現金額度為全額 範例4-4:ch4_04.asp(檔案位於隨書光碟 ch04ch4_04.asp)。26274.2.3巢狀式選擇敘述範例說明:(1)第1527行:最外層IfThenElse敘述,若條件
15、(strStatus=正常)成立,則執行第1624行的敘述區塊。若不成立則執行第26行。也就是符合題意之繳款不正常。(2)第1624行:第二層IfThenElse敘述,若條件(Year=0.5)成立,則執行第1721行的敘述區塊。若不成立則執行第23行。也就是符合題意之持卡未滿半年。(3)第1721行:第三層IfThenElse敘述,若條件(Year 100時),執行第26行之敘述。(本題有bug,請見習題第7題)執行結果:374.3 ASP/VBScript的迴圈敘述重覆結構事實上是結合了低階語言的決策與跳躍,使得程式中可以有某部分敘述區塊能夠被重複執行多次。通常我們將重覆執行的敘述區塊稱為
16、迴圈(Loop),而迴圈又分為計數迴圈與條件式迴圈兩種,我們將在本節中分別加以深入介紹。384.3.1計數迴圈(ForStepNext迴圈敘述)迴圈是結構化程式語言的另一項重要設計,它可以重複不停的做某些動作直到某個條件成立或不成立時,動作才會停止。在VBScript中提供了多種的迴圈,我們首先介紹ForStepNext計數迴圈。在上面的小範例中,迴圈一共會被執行10次,因此總和=總和+次數也總共會被執行10次。最開始次數值為1,每次重複執行迴圈時,迴圈變數次數值都會加1,所以如果變數總和一開始指定為0的話,當迴圈執行完畢,總和值就會是110的總和55。For 次數=1 To 10 總和=總和
17、+次數Next394.3.1計數迴圈(ForStepNext迴圈敘述)迴圈執行的詳細步驟如下:Step1:判斷迴圈變數是否大於最大值,若是則跳出迴圈,若不是則進入迴圈中,執行迴圈敘述區塊。Step2:執行迴圈敘述區塊。Step3:迴圈敘述區塊執行完畢。Step4:迴圈變數加1。(若在尾部加上Step N時,則將迴圈變數值加N)Step5:回到Step1。如果我們不想把迴圈變數每次加1,而是希望每次增加或減少其他種的變化量(例如+2),則只要在For該列程式最後加上一個Step N即可,其中N值就是代表迴圈變數的加法變化量(減法時使用負值即可)。例如,我們將上面的小範例改寫為每次+2的迴圈就變成
展开阅读全文