vb.net的循环语句

时间:2021-06-11 00:00:34
 

一、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可以是数组,也可以是一个集合。

本文来自编程入门网:http://www.bianceng.cn/Programming/VB_NET/200705/1267.htm