循环是用于重复执行某些操作的结构 。许多实际问题都要用到循环控制,如求多个数之和、输入或输出多个值等 。VB .NET实现循环的语句主要有4个:1) For…Next;2) For Each … Next;3) Do...Loop;4) While 。】
1. For...Next语句
语法:
For 循环变量=初值to终值 [Step步长]
语句块
[Exit For]
[语句块]
Next [循环变量]
For...Next循环语句主要用于循环次数预知的情况 。
语法中的循环变量必须为数值型,用于控制循环执行的次数 。步长若为正,要求初值小于终值;若为负,则初值大于终值,默认值为1 。Exit For的作用是终止循环,遇到该语句时退出循环,执行Next以后的语句 。
For...Next语句的执行流程如图3-10所示 。
|
图3-10 For...Next循环语句流程图 |
例如下面的程序段计算1'100之间所有自然数之和 。
Dim Sum As Integer = 0 Dim i As Interger For i = 1 To 100 Sum += i Next |
<%@ Page Language="vb"%>
其中i为循环变量,用作For...Next循环中的循环计数器 。
【例3.4】设计如图3-11所示的ASP .NET页面,在表格中分别以1'7号字连续变化,显示行号和“你好!”文字 。
|
图3-11 利用循环实现表格中1'7号字连续变化的显示 |
源代码如下(Ex3-4.aspx):
<%@ Page Language="vb"%>
<% Dim i Dim FontStr1,FontStr2 For i=1 To 7 FontStr1 = "" FontStr2 = "" Response.Write("" & FontStr1) Response.Write( i & FontStr2 & " | ") Response.Write("" & FontStr1) Response.Write("你好!" & FontStr1 & " | ") Response.Write(" ") Next %>
|
<%@ Page Language="vb"%>例3.4通过For循环实现对表格中显示的文字大小的控制,以循环变量i来控制显示字号的大小 。当i为1时,字号Size值为1;当i为2时,字号Size值也为2;依此类推 。
程序中使用了ASP .NET的内置对象Response,它主要用于向浏览器送回消息 。例中所使用的Write方法的功能就是向浏览器返回显示的消息 。本书第5章将讲述ASP .NET内建对象及其使用 。
2. For Each...Next语句
这个语句是专门为集合和数组设计的,它在格式上与For...Next语句十分相似 。
语法:
For Each 表达式 In group
语句块
[Exit For]
[语句块]
Next
若表达式是集合或数组的元素,则重复执行语句块的操作 。Exit For的含义与前面相同 。
例如:
Dim Score() As Integer = {80,90,100,89,98} 定义整型数组Score并赋初值 Dim mark As Integer,Sum As Integer = 0 For mark In Score 求数组Score()各元素之和 Sum += mark Next |
上述程序代码求出Score() 数组各元素之和 。第一次执行循环时,mark是Score(0),以后各次循环,mark依次是Score(1)、Score(2)...,当处理完Score() 中的最后一个元素后,循环将结束 。有关数组的介绍请参阅第3.5节 。
3. Do...loop语句
其作用是:循环重复执行一组语句直到某个条件为“True”时终止循环,用于控制循环次数未知的循环结构 。Do...Loop语句有两种格式 。
语法:
Do {While/Until} 条件表达式
语句块
[Exit Do]
语句块
Loop Do...Loop语句格式一
或者:
Do
语句块
[Exit Do]
语句块
Loop {While/Until} 条件表达式 Do...Loop语句格式二
其中格式一是先判断条件,后执行循环体,循环有可能一次也不执行;格式二先执行循环体后判断条件,循环至少执行一次 。
当遇到Exit Do语句时,退出循环,执行Loop的下一语句 。
Do...Loop语句的执行流程如图3-12所示 。
|
图3-12 Do...Loop循环结构流程图 |
【例3.5】猜数游戏 。程序的界面如图3-13所示,给定一个数字(本例为108),由用户来猜 。用户在文本框中输入数字,点击“猜对了吗?”按钮 。若猜中,给出成功提示;若猜错了,也给出“大于”或“小于”的提示 。
源代码如下(Ex3-5.aspx):
程序中Btn_Click过程使用Do While … Loop循环,当输入的数不等于所设定的数时,反复执行Response.Redirect操作,该操作的功能是重定向页面 。本例将重定向页面的目标仍指向本文件(Ex3-5.aspx),即若未猜中则重复猜 。
本例还设计了另外一个过程Page_Load(),它是页面在浏览器中加载时执行的 。该过程中使用了Request (“hint”)读取传入的hint参数值 。Request是ASP .NET的另一个重要对象,其功能与Response相反,是从浏览器读取数据 。另外,本例还使用了在页面间传递参数的技术 。当从一个页面转向另一个页面,需要传递参数时,可以使用参数 。本例中,Response.Redirect ("Ex3-5.aspx?hint = " & "太小了!") 操作就是实现当转向Ex3-5.aspx页面时,向该页面传入名为hint,值为“太小了!”的参数,该参数值通过Request对象即可读出 。有关ASP .NET对象及参数传递等内容,将在第5章详述,本章及下一章举例时也会使用到 。
可将例3.3中的Do while ... Loop循环改为Do ... Loop Until循环格式,请自行修改 。
4. While循环语句
While循环与Do While很相似,也是先判断条件,再执行循环体 。
语法:
While 条件表达式
语句块
[Exit While]
[语句块]
End While
Exit While为跳出循环体 。
【责任编辑:老杨 Tel:(010)68576606-8005】