繼上一篇我們學(xué)習(xí)了腳本語言 VBScript 的函數(shù)和條件語句后,今天我們繼續(xù)來看看VBScript 中的循環(huán)語句。
循環(huán)語句的作用就是重復(fù)執(zhí)行程序代碼,循環(huán)可分為三類:一類在條件變?yōu)椤凹佟敝爸貜?fù)執(zhí)行語句,一類在條件變?yōu)椤罢妗敝爸貜?fù)執(zhí)行語句,另一類按照指定的次數(shù)重復(fù)執(zhí)行語句。在VBScript 中可使用下列循環(huán)語句:
Do...Loop: 當(dāng)(或直到)條件為“真”時(shí)循環(huán)。
While...Wend: 當(dāng)條件為“真”時(shí)循環(huán)。
For...Next: 指定循環(huán)次數(shù),使用計(jì)數(shù)器重復(fù)運(yùn)行語句。
For Each...Next: 對于集合中的每項(xiàng)或數(shù)組中的每個(gè)元素,重復(fù)執(zhí)行一組語句。 我們先來看看 Do...Loop,它是可以多次(次數(shù)不定)運(yùn)行語句塊。當(dāng)條件為“真”時(shí)或條件變?yōu)椤罢妗敝埃貜?fù)執(zhí)行語句塊。請看下例:
html>
head>
title>DoLoop.asp /title> body bgcolor="#FFFFFF"> /head> p> /p>
p> 請將今年到本月為止的每個(gè)月份的銷售結(jié)算記錄填寫在本頁之上。 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 程序運(yùn)用循環(huán)語句制作了一張銷售結(jié)算記錄表,將以上代碼剪貼至記事簿保存為 DoLoop.asp,并在瀏覽器中以 HTTP 方式進(jìn)行瀏覽,根據(jù)當(dāng)前的月份的不同,你將看到如下圖的結(jié)果。
img src='http://arch.pconline.com.cn/pcedu/empolder/wz/asp/10111/pic/2001124_asp_11.gif'>
我們來分析一下此段程序,我們的目的是要根據(jù)當(dāng)前的月份打印一張表格,首先我們建立一個(gè)計(jì)數(shù)器“count”并將其值設(shè)為 1,然后我們用函數(shù) month() 和 now() 得到當(dāng)前的月份,最后建立循環(huán),當(dāng) count 的值小于當(dāng)前月份的值加 1 的時(shí)候,即顯示月份值及一條橫線并將 count 的值加 1,循環(huán)語句重復(fù)執(zhí)行直到以上條件為假時(shí)退出循環(huán)。其中如果 count 大于 13 則用 exit do 立即退出循環(huán)。
Do Loop 語句還可以使用以下語法:
Do
[statements][Exit Do]
[statements]Loop [{While | Until} condition]
While...Wend 語句是為那些熟悉其用法的用戶提供的。但是由于 While...Wend 缺少靈活性,所以建議最好使用 Do...Loop 語句。下面我們來看看 For Next 語句。For...Next 語句用于將語句塊運(yùn)行指定的次數(shù),在循環(huán)中使用計(jì)數(shù)器變量,該變量的值隨每一次循環(huán)增加或減少。
下面的示例將過程 MyProc 重復(fù)執(zhí)行 50 次。For 語句指定計(jì)數(shù)器變量 x 及其起始值與終止值。Next 語句使計(jì)數(shù)器變量每次加 1。
Sub DoMyProc50Times()
Dim x
For x = 1 To 50
MyProc
Next
End Sub
關(guān)鍵字 Step 用于指定計(jì)數(shù)器變量每次增加或減少的值。在下面的示例中,計(jì)數(shù)器變量 j 每次加 2。循環(huán)結(jié)束后,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
要使計(jì)數(shù)器變量遞減,可將 Step 設(shè)為負(fù)值。此時(shí)計(jì)數(shù)器變量的終止值必須小于起始值。在下面的示例中,計(jì)數(shù)器變量 myNum 每次減 2。循環(huán)結(jié)束后,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 語句用于在計(jì)數(shù)器達(dá)到其終止值之前退出 For...Next 語句。因?yàn)橥ǔV皇窃谀承┨厥馇闆r下(例如在發(fā)生錯(cuò)誤時(shí))要退出循環(huán),所以可以在 If...Then...Else 語句的 True 語句塊中使用 Exit For 語句。如果條件為 False,循環(huán)將照常運(yùn)行。
最后,讓我們來看看 For Each...Next 語句 ,For Each...Next 循環(huán)與 For...Next 循環(huán)類似。For Each...Next 不是將語句運(yùn)行指定的次數(shù),而是對于數(shù)組中的每個(gè)元素或?qū)ο蠹现械拿恳豁?xiàng)重復(fù)一組語句。這在不知道集合中元素的數(shù)目時(shí)非常有用。它的語法如下:
For Each element In group
[statements]
[Exit For]
[statements]Next [element]
如果 group 中有至少一個(gè)元素,就會進(jìn)入 For Each 塊執(zhí)行。一旦進(jìn)入循環(huán),便首先對 group 中第一個(gè)元素執(zhí)行循環(huán)中的所有語句。只要 group 中還有其他的元素,就會對每個(gè)元素執(zhí)行循環(huán)中的語句。當(dāng) group 中沒有其他元素時(shí)退出循環(huán),然后從 Next 語句之后的語句繼續(xù)執(zhí)行。
至此,我們已經(jīng)完成了對腳本語言 VBScript 所有的基本知識的學(xué)習(xí),但是僅憑閱讀現(xiàn)有的這幾篇文章你是無法熟練運(yùn)用 VBScript 的,你必須通過不斷的實(shí)踐來提高自己的等級。當(dāng)然,如果你熟悉 C,你也可以選擇JavaScript 來作為 ASP 應(yīng)用程序的腳本語言。不知大家有沒有發(fā)現(xiàn) ASP 程序的調(diào)試比較困難,因?yàn)闆]有什么現(xiàn)成的工具,在這里我向大家簡要介紹一下 Microsoft Script Debugger,我們可以運(yùn)用它來進(jìn)行一定量的程序調(diào)試工作。
IIS4.0 所包括的 Microsoft Script Debugger(Script 偵錯(cuò)工具),提供腳本程序的偵錯(cuò)功能。您可以使用 Microsoft Script 偵錯(cuò)工具來進(jìn)行對使用 VBScript、JScript 編寫的腳本程序,以及 Java applets、beans 和 ActiveX 組件的偵錯(cuò)工作。
有的腳本程序在用戶端瀏覽器執(zhí)行,有的腳本程序( % … %> 中的部份)在服務(wù)器端執(zhí)行。Microsoft Script Debugger,可以偵錯(cuò)用戶端執(zhí)行的腳本程序以及服務(wù)器端執(zhí)行腳本程序。 在用戶端瀏覽器執(zhí)行的腳本程序是在用戶端的瀏覽器當(dāng)中執(zhí)行,包括在標(biāo)準(zhǔn) HTML 代碼中的 VBScript、Jscript 部份。在瀏覽器載入此 HTML 代碼或譬如按下按鈕觸發(fā)事件時(shí),將執(zhí)行此包括腳本程序的 HTML 代碼。用戶端瀏覽器執(zhí)行的腳本程序,主要用于對 HTML 表單輸入的基本檢查等功能。
在服務(wù)器端執(zhí)行的腳本程序是在 IIS 服務(wù)器端執(zhí)行,包括在 .asp 程序中。先在 IIS 服務(wù)器上執(zhí)行,執(zhí)行結(jié)果產(chǎn)生標(biāo)準(zhǔn)的 HTML 代碼,再傳送到用戶端瀏覽器。服務(wù)器端執(zhí)行的腳本程序,主要用于多個(gè)網(wǎng)頁之間的連結(jié),HTML 表單輸入的處理,以及存取服務(wù)器上數(shù)據(jù)庫的資料等。
Microsoft Script Debugger 提供以下的除錯(cuò)功能:
1、設(shè)定中斷點(diǎn)
2、逐步追蹤腳本程序。
3、設(shè)定書簽。
4、檢視呼叫堆疊。
5、檢視和更改變數(shù)值。
6、執(zhí)行腳本指令。
從下一篇開始,我們將開始學(xué)習(xí)ASP 的內(nèi)建對象,大家不要走開呀。
您可能感興趣的文章:- 在不刷新頁面的情況下調(diào)用遠(yuǎn)程asp腳本
- ASP網(wǎng)頁模板的應(yīng)用: 讓程序和界面分離,讓ASP腳本更清晰,更換界面更容易
- 用asp腳本實(shí)現(xiàn)限制IP訪問
- 隱藏修改文件時(shí)間和文件屬性的ASP腳本
- ASP腳本的執(zhí)行順序詳細(xì)說明
- ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))