如果有人告訴你學習 ASP 不需要任何編程知識,那麼他錯了;如果我告訴你學習 ASP 必須掌握一門編程語言,那麼我錯了。ASP 動態服務器頁面環境的特點就在於它是通過一種或幾種腳本語言而寫成的,腳本語言可以看作是編程語言的簡化版,它易於學習和掌握,這給廣大動態網站的設計者們提供了相當大的便利。可以這麼說 : 腳本語言運用的得當與否直接關系到 ASP 應用程序的優與劣。繼上一篇我們學習了腳本語言 VBScript 的函數和條件語句後,今天我們繼續來看看 VBScript 中的循環語句。
循環語句的作用就是重復執行程序代碼,循環可分為三類:一類在條件變為“假”之前重復執行語句,一類在條件變為“真”之前重復執行語句,另一類按照指定的次數重復執行語句。在 VBScript 中可使用下列循環語句:
Do...Loop: 當(或直到)條件為“真”時循環。
While...Wend: 當條件為“真”時循環。
For...Next: 指定循環次數,使用計數器重復運行語句。
For Each...Next: 對於集合中的每項或數組中的每個元素,重復執行一組語句。
我們先來看看 Do...Loop,它是可以多次(次數不定)運行語句塊。當條件為“真”時或條件變為“真”之前,重復執行語句塊。請看下例:
<html>
<head>
<title>DoLoop.asp</title>
<body bgcolor="#FFFFFF"></head>
<p> 請將今年到本月為止的每個月份的銷售結算記錄填寫在本頁之上。<P>
<%
counter = 1
thismonth = month(now())
Do while counter <thismonth + 1
response.write " " & counter & " 月份 : "
response.write "______________________________" & "<BR><br>"
If counter >13 then
exit do
end if
counter = counter+1
Loop
%>
<hr></body></html>
這段 ASP 程序運用循環語句制作了一張銷售結算記錄表,將以上代碼剪貼至記事簿保存為 DoLoop.asp,並在浏覽器中以 HTTP 方式進行浏覽,根據當前的月份的不同。
我們來分析一下此段程序,我們的目的是要根據當前的月份打印一張表格,首先我們建立一個計數器“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、執行腳本指令。