如果有人告訴你學習ASP不需要任何程式設計知識,那麼他錯了;如果我告訴你學習ASP必須掌握一門程式語言,那麼我錯了。ASP動態服務器頁面環境的特點就在於它是通過一種或幾種指令碼語言而寫成的,指令碼語言可以看作是程式語言的簡化版,它易於學習和掌握,這給廣大動態網站的設計者們提供了相當大的便利。可以這麼說:指令碼語言運用的得當與否直接關係到ASP應用程式的優與劣。繼上一篇我們學習了指令碼語言VBScript的函式和條件語句後,今天我們繼續來看看VBScript中的迴圈語句。
迴圈語句的作用就是重複執行程式程式碼,迴圈可分為三類:一類在條件變為“假”之前重複執行語句,一類在條件變為“真”之前重複執行語句,另一類按照指定的次數重複執行語句。在VBScript中可使用下列迴圈語句:
:當(或直到)條件為“真”時迴圈。
:當條件為“真”時迴圈。
:指定迴圈次數,使用計數器重複執行語句。
:對於集合中的每項或陣列中的每個元素,重複執行一組語句。
我們先來看看,它是可以多次(次數不定)執行語句塊。當條件為“真”時或條件變為“真”之前,重複執行語句塊。請看下例:
請將今年到本月為止的每個月份的銷售結算記錄填寫在本頁之上。
<%
counter=1
thismonth=month(now())
Dowhilecounter<thismonth+1
e""&counter&"月份:"
e"______________________________"&"
"
Ifcounter>13then
exitdo
endif
counter=counter+1
Loop
%>
這段ASP程式運用迴圈語句製作了一張銷售結算記錄表,將以上程式碼剪貼至記事簿儲存為,並在瀏覽器中以HTTP方式進行瀏覽,根據當前的月份的不同。
我們來分析一下此段程式,我們的目的是要根據當前的月份列印一張表格,首先我們建立一個計數器“count”並將其值設為1,然後我們用函式month()和now()得到當前的月份,最後建立迴圈,當count的值小於當前月份的值加1的`時候,即顯示月份值及一條橫線並將count的值加1,迴圈語句重複執行直到以上條件為假時退出迴圈。其中如果count大於13則用exitdo立即退出迴圈。
DoLoop語句還可以使用以下語法:
Do
[statements][ExitDo]
[statements]Loop[{WhileUntil}condition]
語句是為那些熟悉其用法的使用者提供的。但是由於缺少靈活性,所以建議最好使用語句。下面我們來看看ForNext語句。語句用於將語句塊執行指定的次數,在迴圈中使用計數器變數,該變數的值隨每一次迴圈增加或減少。
下面的示例將過程MyProc重複執行50次。For語句指定計數器變數x及其起始值與終止值。Next語句使計數器變數每次加1。
SubDoMyProc50Times()
Dimx
Forx=1To50
MyProc
Next
EndSub
關鍵字Step用於指定計數器變數每次增加或減少的值。在下面的示例中,計數器變數j每次加2。迴圈結束後,total的值為2、4、6、8和10的總和。SubTwosTotal()
Dimj,total
Forj=2To10Step2
total=total+j
Next
MsgBox"總和為"&total&"。"
EndSub
要使計數器變數遞減,可將Step設為負值。此時計數器變數的終止值必須小於起始值。在下面的示例中,計數器變數myNum每次減2。迴圈結束後,total的值為16、14、12、10、8、6、4和2的總和。SubNewTotal()
DimmyNum,total
FormyNum=16To2Step-2
total=total+myNum
Next
MsgBox"總和為"&total&"。"
EndSub
ExitFor語句用於在計數器達到其終止值之前退出語句。因為通常只是在某些特殊情況下(例如在發生錯誤時)要退出迴圈,所以可以在語句的True語句塊中使用ExitFor語句。如果條件為False,迴圈將照常執行。
最後,讓我們來看看語句,迴圈與迴圈類似。不是將語句執行指定的次數,而是對於陣列中的每個元素或物件集合中的每一項重複一組語句。這在不知道集合中元素的數目時非常有用。它的語法如下:ForEachelementIngroup
[statements]
[ExitFor]
[statements]Next[element]
如果group中有至少一個元素,就會進入ForEach塊執行。一旦進入迴圈,便首先對group中第一個元素執行迴圈中的所有語句。只要group中還有其他的元素,就會對每個元素執行迴圈中的語句。當group中沒有其他元素時退出迴圈,然後從Next語句之後的語句繼續執行。
至此,我們已經完成了對指令碼語言VBScript所有的基本知識的學習,但是僅憑閱讀現有的這幾篇文章你是無法熟練運用VBScript的,你必須通過不斷的實踐來提高自己的等級。當然,如果你熟悉C,你也可以選擇javascript來作為ASP應用程式的指令碼語言。不知大家有沒有發現ASP程式的除錯比較困難,因為沒有什麼現成的工具,在這裡我向大家簡要介紹一下MicrosoftScriptDebugger,我們可以運用它來進行一定量的程式除錯工作。
IIS4.0所包括的MicrosoftScriptDebugger(Script偵錯工具),提供指令碼程式的偵錯功能。您可以使用MicrosoftScript偵錯工具來進行對使用VBScript、JScript編寫的指令碼程式,以及Javaapplets、beans和ActiveX元件的偵錯工作。
有的指令碼程式在使用者端瀏覽器執行,有的指令碼程式(<%…%>中的部份)在伺服器端執行。MicrosoftScriptDebugger,可以偵錯使用者端執行的指令碼程式以及伺服器端執行指令碼程式。在使用者端瀏覽器執行的指令碼程式是在使用者端的瀏覽器當中執行,包括在標準HTML程式碼中的VBScript、Jscript部份。在瀏覽器載入此HTML程式碼或譬如按下按鈕觸發事件時,將執行此包括指令碼程式的HTML程式碼。使用者端瀏覽器執行的指令碼程式,主要用於對HTML表單輸入的基本檢查等功能。
在伺服器端執行的指令碼程式是在IIS伺服器端執行,包括在程式中。先在IIS伺服器上執行,執行結果產生標準的HTML程式碼,再傳送到使用者端瀏覽器。伺服器端執行的指令碼程式,主要用於多個網頁之間的連結,HTML表單輸入的處理,以及存取伺服器上資料庫的資料等。
MicrosoftScriptDebugger提供以下的除錯功能:
1、設定中斷點
2、逐步追蹤指令碼程式。
3、設定書籤。
4、檢視呼叫堆疊。
5、檢視和更改變數值。
6、執行指令碼指令。