asp中for迴圈的使用方法

來源:互聯網
上載者:User

   迴圈是指在指定情況下,多次重複執行一組語句。最常用(for …next、 do …loop),

  1、重複執行的語句叫迴圈語句。

  迴圈語句可以分為三種類型:

  (1)、當條件不為假之前的時候重複執行語句。

  (2)、當條件變為真之前重複執行語句。

  (3)、按指定的次數重複執行語句。

  2、For…Next 迴圈 如果重複操作的次數固定,使用 For…Next 迴圈是一個很好的選擇,此外也將介紹文法很類似的 For Each…Next迴圈,它適用在數組或集合的重複迴圈,(一)For…Next 在 For…Next 迴圈的文法中使用初值、終值、步長以及迴圈變數來完成重複計數的工作。當進入循 環第 一次執行時,迴圈變數便由初值開始累加一次步長,一直到等於或超過終值為止。

  例如:

  初值為1,終 值為 10, 步長為 2,

  則迴圈將執行 5 次,

  迴圈變數的值分別是 1、3、5、7、9,

  第六次因迴圈變數累加到 11, 已經超過 10 了,便不再執行迴圈。

  3、For…Next 迴圈的文法如下:

  For 迴圈變數=初值 To 終值 Step 步長

  程式語句…

  [ Exit For]

  程式語句…

  Next

  說明:

  (1)、迴圈變數:這個變數通常是使用整數,但是必要時也可以是其他數實值型別,他是一個數值變數。

  (2)、初值:這是迴圈變數的初始值,為數實值型別。其值不一定是整數, 或小數,VB會自動給他取整數

  (3)、終值:迴圈變數的終值,為數實值型別。 其值不一定是整數, 或小數,VB會自動給他取整數

  (4)、步長:迴圈變數每次的增加量,步長的數實值型別應該和迴圈變數一樣, 其值可以是正數(遞增迴圈)或是負數(遞減迴圈),當不能為0,如果沒有特別指定,則步 長默 認為 1。

  (5)、迴圈體:在For語句和Next語句之間的語句,可以是一個或多個語句.

  (6)、Next:是迴圈終端語句,在Next後面的"迴圈變數"與For語句中的"迴圈變數"必須相同.

  如:for i=0 to 10 Step 1

  ......

  Next

  執行過程:

  (1)、把初值1賦給迴圈變數i

  (2)、將i的值與終值10進行比較,若i>10,則跳出迴圈,執行(5),否則執行迴圈體.

  (3)、i增加一個步長值,即i=i+1

  (4)、返回(2)繼續執行

  (5)、執行Next語句後面的代碼

  這個迴圈的作用是:根據 FOR 語句中所的初值、終值和步長,來確定迴圈次數,反覆執行迴圈體內各語句。For…Next 迴圈尊循"先檢查、後執行"的原則,即先檢查迴圈變數是否超過終值,

  然後決定是否執行迴圈體。因此,在下列情況下,迴圈體將不會執行,

  (1)、當步長這正數,初值大於終值

  (2)、當步長這負數,初值小於終值

  當初值等於終值時,不管步長是正數還是負數,都執行一次迴圈.

  For語句和Next語句必須成對出現,不能單獨使用,並且For語句必須在Next語句之前.

  迴圈次數N 的一般公式為:

  N=Int((終值-初值)/步長)+1

  For…Next迴圈中的初值小於終值時,步長必須為正值,表示由小到大計數;若初值大於終值時,步長必須設為負值,表示由大到小計數。

  例如:初值小於終值時

  複製代碼 代碼如下:

  <%

  for i=0 to 10 Step 1 '預設步長為1可以不寫

  Response.Write(i&"
")

  Next

  %>

  例如:初值大於終值時

  複製代碼 代碼如下:

  <%

  for i=10 to 1 Step -1

  Response.Write(i&"
")

  Next

  %>

  當步長大於0時:當初值<=終值時,For…Next之間的語句會被執行一次,接著迴圈變數會被加上步長,如果還小於終值,則再執行一次For…Next之間的語句,一直到迴圈變數累加到大於終值,才會跳離For…Next迴圈。

  複製代碼 代碼如下:

  <%

  for i=1 to 1 Step 0.5

  Response.Write(i&"
")

  Next

  %>

  當步長小於0時:當初值>=終值,會執行迴圈內的語句一次,然後迴圈變數減去步長(負的),如果迴圈變數還>=終值,則再執行一次迴圈內的語句,一直到迴圈變數累加到小於終值,才會跳離For…Next迴圈。

  迴圈語句的執行過程:

  複製代碼 代碼如下:

  <%

  for i=2 to 1 Step -1

  Response.Write(i&"
")

  Next

  %>

  4、迴圈語句的執行過程:

  (1)通過For語句進入迴圈。如果迴圈變數的初值、終值、步長為算術運算式,系統首先計算出算術運算式的值,然後將初值賦給迴圈變數,並將終值、步長的值存入記憶體

  (2)將迴圈變數的值與終值進行比較,當迴圈變數的值未超過終值的範圍時,則順次執行迴圈體內的各個語句。若迴圈變數的值超過終值的範圍,則退出迴圈,執行NEXT的後繼語句。

  (3)在執行完迴圈體各語句後遇到NEXT語句,將迴圈變數增加一個步長的值,再去終值,比較,如果仍不超過 起開潿,則再次執行迴圈體內的各語句,這樣重複執行,直到迴圈變數的值超過終值的範圍,結束該迴圈,執行Next的後繼語句。

  課堂例題:

  【例 1】

  簡單1加到10,用迴圈特點每次加1

  複製代碼 代碼如下:

  <%

  for i=0 to 10

  sum=sum+i

  Next

  Response.Write(sum)

  %>

  最終顯示結果:55

  【例 2】

  複製代碼 代碼如下:

  <%

  for i=0 to 10 step 2

  Response.Write(i&"
")

  Next

  %>

  最終顯示結果:0,2.4,6,8,10

  【例 3】

  複製代碼 代碼如下:

  <%

  for i=0 to 10

  Response.Write(i&"
")

  if i=5 then

  exit for'強制結束迴圈

  end if

  Next

  %>

  在上述程式中,原本 i 會從1 累加到10,執行 10次,但是在 i 累加到 5 時,符合了 i=5 的判斷式,結

  果執行 Exit For 語句,跳離了迴圈,因此最後網頁顯示的結果是“0,1,2,3,4,5,”

  【例 4】

  複製代碼 代碼如下:

  <%

  for i=10 to 0 step -1

  sum=sum+i

  Next

  Response.Write(sum)

  %>

  最終顯示結果:55

  5、我們以範例來說明 For…Next迴圈的不同用法:

  【例 1】

  複製代碼 代碼如下:

  <% For i=1 To 10

  Response.write i&","

  Next

  %>

  上列程式會累加上 I,而迴圈中的 i 會由1,2,3,…每次累加 1,一直到 10,總共執行 10 次,最後網頁會顯示出“1,2,3,4,5,6,7,8,9,10, ”

  【例 2】

  複製代碼 代碼如下:

  <%

  For a=1 To 10 Step 0.5

  Response.write a&","

  Next

  %>

  上列程式中 a將每次累加 0.5,總共執行 20 次,最後在網頁中,顯示出“1,1.5,2,2.5,3,3.5…

  9.5,

  【例 3】

  複製代碼 代碼如下:

  <%

  For j=10 To 1 Step -1

  Response.write j&","

  Next

  %>

  上列程式中j 將由 10到 1,每次累減 1,最後在網頁中,顯示出“10,9,8,7,6,5,4,3,2,1, ”

  【例 4】

  迴圈中的初值、終值和步長,在程式一開始執行時唯讀入一次,隨後即使在迴圈內更改其值,也不會對迴圈執行有所影響。

  複製代碼 代碼如下:

  <%

  StepNum=1

  EndNum=1

  For i=1 To endNum Step stepNum

  Response.write i&","

  StepNum=StepNum-0.1

  EndNum=EndNum+1

  Next

  %>

  上列程式中,故意在迴圈內將步長每次減少 0.1,將終值每次都加 1,意圖使 i 永遠達不到終值,但是因為步長和終值都唯讀取一次,便不會再更改,因此這段程式的輸出結果還是“1” 。

  【例 5】

  迴圈中的迴圈變數,是會在迴圈中更動的,因此:

  複製代碼 代碼如下:

  <%

  For k=1 To 10

  Response.Write k&","

  Next

  %>

  上列程式會累加上 k,而迴圈中的 k 會由1,2,3,…每次累加 1,一直到 10,總共執行 10 次,最後網頁會顯

  示出“1,2,3,4,5,6,7,8,9,10,

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.