在本文上兩篇中,我們學習了腳本語言VBScript 的變量、函數、過程和條件語句,本篇將繼續給大家介紹VBScipt 的循環語句,並對腳本語言在ASP 中的應用加以總結。
繼上一篇我們學習了腳本語言VBScript 的函數和條件語句後,今天我們繼續來看看VBScript 中的循環語句。
循環語句的作用就是重複執行程序代碼,循環可分為三類:一類在條件變為假之前重複執行語句,一類在條件變為真之前重複執行語句,另一類按照指定的次數重複執行語句。在VBScript 中可使用下列循環語句:
Do...Loop: 當(或直到)條件為真時循環。
While...Wend: 當條件為真時循環。
For...Next: 指定循環次數,使用計數器重複運行語句。
For Each...Next: 對於集合中的每項或數組中的每個元素,重複執行一組語句。 我們先來看看Do...Loop,它是可以多次(次數不定)運行語句塊。當條件為真時或條件變為真之前,重複執行語句塊。請看下例:
- <html>
- <head>
- <title>DoLoop.asp</title><bodybgcolor=#FFFFFF></head><p></p>
- <p>請將今年到本月為止的每個月份的銷售結算記錄填寫在本頁之上。 <P>
- <%
- counter=1
- thismonth=month(now())
- Dowhilecounter<thismonth+1
- response.write&counter&月份:
- response.write______________________________&<BR><br>
- Ifcounter>13then
- exitdo
- endif
- counter=counter+1
- Loop
- %>
- <hr></body></html>
這段ASP 程序運用循環語句製作了一張銷售結算記錄表,將以上代碼剪貼至記事簿保存為DoLoop.asp,並在瀏覽器中以HTTP 方式進行瀏覽,根據當前的月份的不同,你將看到如下圖的結果。
- <imgsrc='http://arch.pconline.com.cn/pcedu/empolder/wz/asp/10111/pic/2001124_asp_11.gif'>
我們來分析一下此段程序,我們的目的是要根據當前的月份打印一張表格,首先我們建立一個計數器count並將其值設為1,然後我們用函數month() 和now() 得到當前的月份,最後建立循環,當count 的值小於當前月份的值加1 的時候,即顯示月份值及一條橫線並將count 的值加1,循環語句重複執行直到以上條件為假時退出循環。其中如果count 大於13 則用exit do 立即退出循環。
Do Loop 語句還可以使用以下語法:
Do
[statements][Exit Do]
[statements]Loop [{While | Until} condition]
While...Wend 語句是為那些熟悉其用法的用戶提供的。但是由於While...Wend 缺少靈活性,所以建議最好使用Do...Loop 語句。下面我們來看看For Next 語句。 For...Next 語句用於將語句塊運行指定的次數,在循環中使用計數器變量,該變量的值隨每一次循環增加或減少。
下面的示例將過程MyProc 重複執行50 次。 For 語句指定計數器變量x 及其起始值與終止值。 Next 語句使計數器變量每次加1。
Sub DoMyProc50Times()
Dim x
For x = 1 To 50
MyProc
Next
End Sub
關鍵字Step 用於指定計數器變量每次增加或減少的值。在下面的示例中,計數器變量j 每次加2。循環結束後,total 的值為2、4、6、8 和10 的總和。
Sub TwosTotal()
Dim j, total
For j = 2 To 10 Step 2
total = total + j
Next
MsgBox 總和為& total & 。
End Sub
要使計數器變量遞減,可將Step 設為負值。此時計數器變量的終止值必須小於起始值。在下面的示例中,計數器變量myNum 每次減2。循環結束後,total 的值為16、14、12、10、8、6、4 和2 的總和。
Sub NewTotal()
Dim myNum, total
For myNum = 16 To 2 Step -2
total = total + myNum
Next
MsgBox 總和為& total & 。
End Sub
Exit For 語句用於在計數器達到其終止值之前退出For...Next 語句。因為通常只是在某些特殊情況下(例如在發生錯誤時)要退出循環,所以可以在If...Then...Else 語句的True 語句塊中使用Exit For 語句。如果條件為False,循環將照常運行。
最後,讓我們來看看For Each...Next 語句,For Each...Next 循環與For...Next 循環類似。 For Each...Next 不是將語句運行指定的次數,而是對於數組中的每個元素或對象集合中的每一項重複一組語句。這在不知道集合中元素的數目時非常有用。它的語法如下:
For Each element In group
[statements]
[Exit For]
[statements]Next [element]
如果group 中有至少一個元素,就會進入For Each 塊執行。一旦進入循環,便首先對group 中第一個元素執行循環中的所有語句。只要group 中還有其他的元素,就會對每個元素執行循環中的語句。當group 中沒有其他元素時退出循環,然後從Next 語句之後的語句繼續執行。
至此,我們已經完成了對腳本語言VBScript 所有的基本知識的學習,但是僅憑閱讀現有的這幾篇文章你是無法熟練運用VBScript 的,你必須通過不斷的實踐來提高自己的等級。當然,如果你熟悉C,你也可以選擇JavaScript 來作為ASP 應用程序的腳本語言。不知大家有沒有發現ASP 程序的調試比較困難,因為沒有什麼現成的工具,在這裡我向大家簡要介紹一下Microsoft Script Debugger,我們可以運用它來進行一定量的程序調試工作。
IIS4.0 所包括的Microsoft Script Debugger(Script 偵錯工具),提供腳本程序的偵錯功能。您可以使用Microsoft Script 偵錯工具來進行對使用VBScript、JScript 編寫的腳本程序,以及Java applets、beans 和ActiveX 組件的偵錯工作。
有的腳本程序在用戶端瀏覽器執行,有的腳本程序(< % … %> 中的部份)在服務器端執行。 Microsoft Script Debugger,可以偵錯用戶端執行的腳本程序以及服務器端執行腳本程序。 在用戶端瀏覽器執行的腳本程序是在用戶端的瀏覽器當中執行,包括在標準HTML 代碼中的VBScript、Jscript 部份。在瀏覽器載入此HTML 代碼或譬如按下按鈕觸發事件時,將執行此包括腳本程序的HTML 代碼。用戶端瀏覽器執行的腳本程序,主要用於對HTML 表單輸入的基本檢查等功能。
在服務器端執行的腳本程序是在IIS 服務器端執行,包括在.asp 程序中。先在IIS 服務器上執行,執行結果產生標準的HTML 代碼,再傳送到用戶端瀏覽器。服務器端執行的腳本程序,主要用於多個網頁之間的連結,HTML 表單輸入的處理,以及存取服務器上數據庫的資料等。
Microsoft Script Debugger 提供以下的除錯功能:
1、設定中斷點
2、逐步追踪腳本程序。
3、設定書籤。
4、檢視呼叫堆疊。
5、檢視和更改變數值。
6、執行腳本指令。
從下一篇開始,我們將開始學習ASP 的內建對象,大家不要走開呀。