VB.NET有很多值得学习的地方,这里我们主要介绍VB.NET循环,VB.NET循环有三种形式:For/Next循环、While/End While循环、Do/Loop循环和For/Each循环。
1. For/Next循环
用For/Next循环可以精确地控制循环体的执行次数。For/Next循环的语法如下:
- For counter = startvalue To endvalue [Step stepvalue]
- [statements]
- [Exit For]
- [statements]
- Next
其中,用Step关键字可以定义循环计数器的增长方式,stepvalue的值(可正可负)来适应各种不同的需求。Exit For语句允许在某种条件下直接退出循环体。用For/Next语句来实现显示二维数组的内容。
- <%
- Dim arrData(1,2)
- Dim intI,intJ as Integer
- arrData(0,0)=12
- arrData(0,1) =13
- arrData(0,2) =14
- arrData(1,0) =15
- arrData(1,1) =16
- arrData(1,2) =17
- For intI=0 To 1
- For intJ=0 To 2
- Response.Write (arrData(intI,intJ) & " ")
- Next
- Response.Write ("<br>")
- '一行显示完以后换行显示下一行
- Next
- %>
可以看出,用For/Next循环来显示数组这样的可以确定循环次数的数据结构是十分方便的。
2. While/End While 循环
如果不清楚要执行的循环的次数,那么可以用While/ End While循环。它有一个检测条件,当条件满足时,执行循环体的内容。如果条件不满足,就退出循环。While/ End While语法如下:
- While condition
- [statements]
- End While
由于在进入循环体之前会遇到检测条件,所以如果这个时候condition的值为False,那么While/ End While循环的循环体有可能一次也不能执行。显示3次问候信息。
- <%
- Dim intI as Integer
- IntI=0
- While intI<3
- Response.Write ("Hello! Cindy!" & "<br>")
- IntI=intI+1
- End While
- %>
在这个例子的第3行中为第2行中定义的intI变量设置了初值0。这里,如果不设置初值也是可以的,系统会自动为intI进行初始化(VB.NET默认为未显式初始化的整数初始化为0)。但是,建议养成为变量设置初值的好习惯,这样可以防止很多意想不到的错误。
3. Do/Loop
同样,在不知道循环次数的情况下,也可以使用Do/Loop 循环。Do/Loop循环的作用与While/ End While十分相似。它的语法是:
- Do {While | Until} condition
- [statements]
- [Exit Do]
- statements]
- Loop
其中,Do后面的While和Until是可选的。使用While时,后面的条件满足则执行循环体;使用Until时,后面的条件满足就退出循环体。Do/Loop循环还有另外一种写法:
- Do
- [statements]
- [Exit Do]
- [statements]
- Loop {While | Until} condition
这种写法的结果是:循环体在执行的时候至少会执行一次。显示3次问候信息。
- <%
- Dim intI
- IntI=0
- Do Until intI>2
- Response.Write ("Hello! Cindy!" & "<br>")
- IntI=intI+1
- Loop
- %>
可以看出,Do/Loop的执行和While/End While的执行没有太大的区别。用户也可以把上面例子中第4行中的Until改为While并相应地改变后面的条件来实现相同的功能。
4. For/Each
在某些特殊情况下,可以使用For/Each来实现对一个数组或集合(集合将在后面的章节中讲解)中元素的遍历。
For/Each语句的写法如下:
- For Each item In Array or Collection
- [statements]
- Next
用For/Each显示一个数组中的所有数据。
- <%
- Dim arrData(3)
- Dim stritem as string
- arrData(0)="Beijing"
- arrData(1)="Shanghai"
- arrData(2)="Guangzhou"
- For Each stritem In arrData
- Response.Write (stritem & "<br>")
- Next
- %>
可以看出,For/Each循环与For/Next循环的区别是:在For/Next循环中需要指明循环的次数,而在For/Each循环中不需要这样就可以遍历到一个数组或集合的所有内容。另外需要说明的是,这种循环通常在集合中使用。以上介绍VB.NET循环。