程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> vb.net的循環語句

vb.net的循環語句

編輯:VB.NET

一、For...Next循環
For...Next循環在事件過程中重復執行指定的一組語句,直到達到指定的執行次數為止。當要執行幾個相關的運算、操作屏幕上的多個元素或者處理幾段用戶輸入時,這種方法就十分有用了。For...Next循環實際上是一大串程序語句的一種簡略寫法,由於這一長串語句中的每一組語句都完成相同的任務,Visual Basic只定義其中的一組語句並按照程序的需要重復執行這組語句,直至達到規定的次數。For...Next循環的語法如下所示:
For Variable=start To end
    statements
Next[variable]
上述語法中,“For”、“To”、“Next”是必須的關鍵字,等號(=)也不能省略。“variable”是數值型變量的名稱,它記錄了當前的循環次數,這個變量用你程序中需要的數值型變量來代替。“start”和“end”是兩個數值,表示循環的初值和終值,你也需要使用程序中所需的相應值來代替它們。“For”和“Next”之間的一條或多條語句是該循環將重復執行的語句。例如,下面的For...Next循環在程序運行時計算機揚聲器快速響鈴四聲:
For i=1 To 4
    Beep
Next
上面的循環與過程中重復書寫4條Beep語句是等價的。對編譯器來說,上述循環相當於:

   Beep
   Beep
   Beep
   Beep

上面的循環中使用的變量是字母“i”,這是個習慣用法,它表示For...Next循環中的整型計數器。循環每執行一次,該計數器變量增加1(第一次執行循環時,該變量的值為1,也就是“start”指定的初值:最後一次執行循環時,該變量的值為4,也就是“end”指定的終值)。

二、Do循環
程序中除了使用For...Next循環外,也可以使用Do循環重復執行一組語句,直到某個條件為“True”時終止循環。對於事先不知道循環要執行多少次的情況來說,Do循環十分有用和方便。例如,你要求用戶向數據庫中輸入姓名,直到用戶在輸入框中輸入單詞“Done”時終止輸入。這時,你可以使用Do語句來構造一個無窮循環,當用戶輸入字符串“Done”時退出循環。根據循環條件的放置位置以及計算方式,Do循環有幾種格式,其中常用的語法格式為:

Do [{While|Until} condition]
   statements
   [Exit Do]
Loop
或
Do
  statements
  [Exit Do]
  statements
Loop [{While|Until} condition]

如果條件為“Null”,則這個條件被認為是“False”。例如,下面的“Do”循環重復處理用戶輸入,直到用戶鍵入單詞“Done”時為止。

Do While InpName<>"Done"
inpName=InputBox("Enter your name or type Done to quit.")
If inpName<>"Done" Then
   Label1.Text=inpName
End If
Loop

注意:測試條件的放置位置影響Do循環的執行方式。這個循環中的條件是InpName<>"Done",Visual Basic編譯器把這個條件翻譯成“只要InpName變量的值不等於單詞“Done”,就一直執行該循環語句”。這表明:當Do循環第一次執行時,如果循環項部的條件值不是True,那麼Do循環中的語句就不會執行。對上面的示例來說,如果在循環開始執行之前(可能在事件過程中使用某個賦值語句進行賦值),InpName變量的值等於字符串“Done”,那麼Visual Basic將跳過整個循環體,並在Loop語句後面的語句繼續執行。需要注意的是,這種格式的Do循環需要在循環體中寫上一條If...Then語句,以避免用戶鍵入的退出值顯示出來。如果希望程序中的循環體至少執行一次,那麼把條件放置在循環的尾部,例如:

Do Until InpName=InputBox("Enter your name or type Done to quit.")
If InpName<>"Done" Then
   Label1.Text=InpName
Loop While InpName<>"Done"

這個循環與前面介紹的Do循環相似,但是,這裡的循環條件在接收了InputBox函數中的姓名後進行測試。這種循環方式的優點是在測試循環條件前更新變量InpName的值,這樣,即使InpName在進入循環前的值為“Done”,也不會直接退出循環。在循環的尾部測試條件保證了循環體至少執行一次,但是,一般來說,這種格式的循環體中往往要增加一些額外的數據處理語句。

三、While循環
While循環執行到給定的條件為True才終止循環,與Do While相似。Whiel循環的語法為:

While condition
   statements
   [Exit While]
   statemenst
End While

如果條件為Null,則這個條件被認為是False,如果條件為True,則所有的語句將被執行,直到End While,這時候控制權返還給While,condition再次被檢查,如果condition為True,則繼續執行While內部的語句,如果condition為False,則繼續執行End While後面的語句。下例將說明While循環的用法:

Dim Check As Boolean=True
Dim counter As Integer=0
Do '外層循環
   While Counter<20
       Counter+=1     '計數器加一
       If Counter=20 Then
          Check=False
          Exit While  '退出內層循環
       End If
   End While
Loop Until Check      '退出外層循環

四、For Each...Next循環
For Each...Next循環與For...Next循環類似,但它對數組或對象集合中的每一個元素重復一組語句,而不是重復語句一定的次數。如果不知道一個集合有多少元素,For Each...Next循環非常有用。For Each...Next循環的語法如下:

For Each element in group
    statements
Next element

例如,下面的例子利用For Each...Next循環來查找所有元素的Text屬性是否為“Hello”:

Dim Found As Boolean
Dim MyObject,MyCollection As Object
For Each MyObject In MyCollection
    If MyObject.Text="Hello" Then
       Found=True
       Exit For
    End If
Next

使用For Each...Next循環時的兩點說明:
1.對於集合或數組中的元素,element既可以是普通的Object類型,也可以是特殊的Object對象。
2.group可以是數組,也可以是一個集合。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved