詳細講解ASP指令碼迴圈語句

來源:互聯網
上載者:User

如果有人告訴你學習 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、執行指令碼指令。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.